![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 19:23 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何在批处理中获得本批处理文件的所在路径哈?? |
| 可打印版本 2,707 / 17 |
| 第1楼 llztt1 | 发表于 2007-02-04 07:55 |
| 中级用户 发帖 94 积分 214 | |
|
如何在批处理中获得本批处理文件的所在路径哈?? 有些小软件需要在其本路径下运行方可顺利加载必要运行文件,譬如W老大修改过的那个IFSDRV,加载中文936.CPI...
所以我想设置好了PATH路径后,在其他盘符下运行调用IFSDRV的批处理时,需要获得该批处理文件的路径(本批处理文件和IFSDRV同目录),然后来个GO.EXE那个路径,再运行,但怎么获得这个路径呢呢?? 不想用绝对的路径,可否有什么系统命令直接取得这个路径?? |
|
| 第2楼 Michael | 发表于 2007-02-04 22:15 |
| 钻石会员 发帖 3,040 积分 10,051 | |
|
%0的百分号和0之间加点什么。
|
|
| 第3楼 llztt1 | 发表于 2007-02-05 11:06 |
| 中级用户 发帖 94 积分 214 | |
|
呵呵,加点什么啊??
我想实现的东西就象这个例子: 设置好PATH各个路径,而这个批处理可能存在于其中任何一个路径中,如何在任意盘符下运行这个批处理自动转到这个批处理所在路径下??? |
|
| 第4楼 Michael | 发表于 2007-02-05 11:36 |
| 钻石会员 发帖 3,040 积分 10,051 | |
|
到批处理区去问吧,那里的人们整天摆弄这个东西。或者像我一样,不懂了就看命令的帮助。刚才查了一下,是%~p0,在cmd里输入for /?,解释的很详细。
|
|
| 第5楼 llztt1 | 发表于 2007-02-05 12:32 |
| 中级用户 发帖 94 积分 214 | |
|
呵呵,发错地方了啊,我去批处理区问问
不过%~p0是在WINDOWS下CMD里的,在DOS中无法使用的。。有些遗憾啊。。 谢谢楼上 |
|
| 第6楼 Michael | 发表于 2007-02-06 00:06 |
| 钻石会员 发帖 3,040 积分 10,051 | |
Originally posted by llztt1 at 2007-2-4 11:32 PM: DOS下的啊,那还是别去了。 |
|
| 第7楼 zjghjs | 发表于 2007-02-14 00:46 |
| 初级用户 发帖 19 积分 46 | |
|
来了两天,看得还是一头雾水:(
|
|
| 第8楼 slore | 发表于 2007-02-14 06:28 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
%cd%可以用不?
|
|
| 第9楼 llztt1 | 发表于 2007-02-15 00:32 |
| 中级用户 发帖 94 积分 214 | |
|
DOS下没得用
|
|
| 第10楼 slore | 发表于 2007-02-15 03:44 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
那dir下自己
在返回信息里应该可以获得目录吧? |
|
| 第11楼 terse | 发表于 2007-02-16 13:03 |
| 银牌会员 发帖 946 积分 2,404 | |
|
pushd 路径 试一下
|
|
| 第12楼 freetree | 发表于 2007-02-23 09:55 |
| 初级用户 发帖 9 积分 31 | |
|
如果TRUENAME和批处理文件在同一路径下,可用TRUENAME返回所在路径。
|
|
| 第13楼 htysm | 发表于 2007-02-25 22:57 |
| 高级用户 发帖 415 积分 866 | |
|
要是在纯DOS下真的好象没办法。在CMD下方法有的是。
|
|
| 第14楼 0451lym | 发表于 2007-02-26 02:44 |
| 高级用户 发帖 357 积分 760 | |
|
APPEND
-------------------------------------------------------------------------------- 使程序能打开所指定目录中的数据文件,就象该文件是在当前目录中一样。运行Windows时不要用这个命令。 所指定的目录称为添接目录。因为,对打开数据文件而言,对这些文件的查找,就好象它们已添接在当前目录中了。 语法 : APPEND path] ] 要显示添接目录清单,可用: APPEND 要删除现有的添接目录的列表,可用: APPEND ; 参数 : path 指定要添接到当前目录中去的目录及其所在驱动器(如果不同于当前驱动器)。可指定多个path,各项之间用分号(;)隔开。 ; 当直接使用此符号时表示,删除现有的添接目录表。 开关项 : /X 指出程序执行时,MS-DOS对添接目录是(/X:ON)否(/X:OFF)进行搜索。 /X:ON可略写为/X。如果要指定X:ON,必须在启动系统后,第一次用APPEND时进行指定。之后,X:ON和X:OFF可来回切换,默认值为/X:OFF。 /PATH:ON|/PATH:OFF 指出当路径中已包含程序正在寻找的文件名时,程序是否还要到添接目录中搜索该数据文件。默认设置为/PATH:ON。 /E 将添接目录表赋给名为APPEND的环境变量。本开关项仅能在启动系统后,第一次引用APPEND时使用。用了/E,就可用SET命令来显示添接目录表了。有关环境变量的说明,见<SET>命令。 注意:Microsoft Windows或Windows Setup程序,不能使用Append命令。 相关命令 关于设置可执行文件的搜寻路径,请参见<PATH>命令。 -------------------------------------------------------------------------------- APPEND─注解 运行APPEND与Microsoft Windows APPEND不能与Microsoft Windows或Windows Setup程序一起使用。 多次运行APPEND 启动系统后,可随意多次使用APPEND。但要注意下列事项: ★ /E开关项在系统启动后,仅在APPEND第一次使用中有效。 ★ 第二次及以后每次运行APPEND,必须略去.EXE文件扩展名。若试图输入APPEND.EXE 来运行APPEND,则APPEND只能加载一次。 将添接目录表存入环境中 在APPEND中可利用/E,将添接的目录列表赋给名为APPEND的环境变量。方法是,先执行仅带/E开关的APPEND命令,然后再执行一次APPEND,这次要把想添接的目录包括在内。在同一命令行中不能同时指定/E和path。 指定多个添接目录 添接多个目录时,目录项之间用分号(;)隔开。如果再次执行带path参数 的APPEND,则本次所指定的目录会取代前一个APPEND命令中指定的任何目录。 添接目录与DIR命令 执行DIR命令时,其执行结果的列表中不会包括添接目录中的文件名。 文件名冲突 如果添接目录中有文件和当前目录中文件同名,则打开当前目录的这个文件。 APPEND与创建新文件的程序一起使用 程序打开一个添接目录中的文件时,就象打开当前目录中的文件一样。如果该程序接着又将这个文件存放在一个新创建的同名文件中,则这个新文件创建在当前目录中(而不是添接目录中)。APPEND更适合用于不作修改的或虽修改但不作新文件备份的数据文件。 数据库程序 通常对数据文件进行修改但不作新备份。文本编辑器和文字处理器则通常借助于备份来存放修改过的数据文件。为避免混乱,不要与这些程序一起使用APPEND。 /X:ON开关与PATH命令的使用 一旦指定/X:ON,只需在命令提示符中输入程序名就能运行某个存放在添接目录中的程序。 平时我们常用PATH命令来指定该程序所在的目录。而如果您的程序在添接目录中,就不再需用PATH命令指出它的目录。 MS-DOS按以下顺序找到一个添接目录中的程序,即,首先是当前目录,再是添接目录,然后才是搜索路径PATH。 总是用到添接目录的MS-DOS函数 即使没有指定/X:ON,当程序调用下列MS-DOS中断21的函数时,仍利用了添接目录。 ★ 打开文件(0Fh) ★ 打开文件句柄 (3Dh) ★ 读取文件大小 (23h) 当指定了/X:ON时,程序每次对上述及下列中断21h函数进行调用时,都用到了添接目录。 ★ 查找第一项 (11h) ★ 查找第一个文件 (4Eh) ★ 执行程序(EXEC) (4Bh) 在网络驱动器中使用APPEND APPEND命令也适用于网络驱动器上的目录添接。 -------------------------------------------------------------------------------- APPEND─例子 为了让程序打开B盘LETTERS目录下的数据文件和A盘ROORTS目录下的数据文件,就象它们是在当前目录中,可输入下列命令: append b:\letters;a:\reports 添接同样的目录,并在MS-DOS环境变量中存放添接的目录表,可键入下列命令: append /e append b:\letters;a:\reports 上述命令都必须在启动系统后,首次执行APPEND命令时使用。 |
|
| 第15楼 bjsh | 发表于 2007-03-17 00:09 |
| 银牌会员 发帖 621 积分 2,000 | |
|
都想复杂了!
其实直接在开头的时候 加一句 set programme_path=%cd% 后面直接调用 %programme_path%就好了 昨天也是刚碰到这样一个问题; 后来发现其实可以如此简单 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |