![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 06:51 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何得知某个文件的路径? |
| 可打印版本 1,136 / 6 |
| 第1楼 hrduan268 | 发表于 2007-04-21 22:58 |
| 初级用户 发帖 27 积分 72 | |
|
如何得知某个文件的路径? 假如光盘E:\SIMPCHIN\WIN2000\ADV_SRV\I386下有一个叫sndvol32.ex_的文件,现在的问题是只知道光盘E中确实是有sndvol32.ex_,但不知sndvol32.ex_的具体路径,在DOS下如何得知sndvol32.ex_的具体路径?
如果用path_snd表示E:\SIMPCHIN\WIN2000\ADV_SRV\I386,我要用到下面的命令: expand path_snd\sndvol32.ex_ c:\windows\system32\sndvol32.exe 值得注意的是sndvol32.ex_的路径可能有多个,顺便告诉大家E盘是windows20 00的安装盘。 [ Last edited by hrduan268 on 2007-4-21 at 10:02 AM ] |
|
| 第2楼 lxmxn | 发表于 2007-04-22 04:35 |
| 版主 发帖 4,938 积分 11,386 | |
| 第3楼 hrduan268 | 发表于 2007-04-22 08:16 |
| 初级用户 发帖 27 积分 72 | |
|
我在CMD中试了一下,提示"此时不应有%%a",还是不行呀
|
|
| 第4楼 hrduan268 | 发表于 2007-04-22 08:28 |
| 初级用户 发帖 27 积分 72 | |
|
可以了,我把下面的内容放到1.txt中:
@echo on for /f "delims=" %%a in ('dir /s/b/a-d G:\sndvol32.ex_') do if exist "%%a" expand "%%a" c:\sndvol32.exe pause 然后把1.txt改为1.bat,成功了!多谢lxmxn兄! |
|
| 第5楼 hrduan268 | 发表于 2007-04-22 08:34 |
| 初级用户 发帖 27 积分 72 | |
|
注意,我是在另一台机试的,因为原来哪台机是Ghost xp版本,不支持*.bat文件,E盘改为G盘,我不想覆盖原来的c:\windows\system32\sndvol32.exe,所以改为c:\下,这句话有的地方不是很明,我再想想,想好后再来问.
|
|
| 第6楼 hrduan268 | 发表于 2007-04-22 09:21 |
| 初级用户 发帖 27 积分 72 | |
|
"delims=" %%a表示什么意思?
'dir /s/b/a-d G:\sndvol32.ex_'又怎么理解,这句话从整体上理解我不是很明,从局部上理解有些参数也不是很明,用引号有什么用? |
|
| 第7楼 lxmxn | 发表于 2007-04-22 12:21 |
| 版主 发帖 4,938 积分 11,386 | |
|
Re hrduan268:
1、3楼的问题是:在命令提示符里面运行for命令,只需要一个%来引导变量即可,而不是像在批处理文件里面需要两个%(即%%)来引导变量,这个是个规定,需要记住的。 2、6楼的问题:"delims="表示不以任何字符为分隔符,意即取In后面括号中的一行的所有内容,而不是以空格为分割的内容;'dir /s/b/a-d G:\sndvol32.ex_'中加单引号是因为'dir /s/b/a-d G:\sndvol32.ex_'是一个命令,在for的in后面的()中,命令需要用单引号括起来,这也是for命令的格式规定的。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |