中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 19:08
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么通过P来确定最后一个硬盘盘符!!
可打印版本  993 / 11
第1楼 yy2372575 发表于 2006-12-19 23:42
初级用户 发帖 26 积分 73
怎么通过P来确定最后一个硬盘盘符!!
我想通过P来确定最后一个硬盘盘符,怎么办呢?举例说:
我有一个程序啊a.exe存在硬盘最后一个区里,因为硬盘分区不同,可能是C,D,E也可能是C,D,E,F。但a.exe存在最后一个盘符里我想在DOS下用批来确定最后一个盘符并执行他,怎么办呢?

[ Last edited by namejm on 2006-12-19 at 05:13 PM ]
第2楼 ccwan 发表于 2006-12-20 03:01
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
试了几种方法,最后定下了这个方案,它避免了将非硬盘分区(如光驱、优盘等)列出。
第3楼 yy2372575 发表于 2006-12-20 05:56
初级用户 发帖 26 积分 73
求救!!
你的代码我试了,XP下可以。在DOS下提示:
SYNTAX ERROR
求你帮忙编一个DOS下的行吗
第4楼 lianjiang2004 发表于 2006-12-20 06:51
金牌会员 发帖 1,884 积分 3,946
@echo off
rem 知道a.exe所在目录的话,也许可以这样。假定在bbb目录下。
set lastdrv=0
for %%p in (c: d: e: f: g: h: i: j: k: l: m: n: o:) do if exist %%p\bbb\a.exe set lastdrv=%%p
echo.
echo last drive is %lastdrv%
pause>nul
:exit

[ Last edited by lianjiang2004 on 2006-12-20 at 10:26 AM ]
第5楼 yy2372575 发表于 2006-12-20 09:05
初级用户 发帖 26 积分 73
感谢
先谢谢lianjiang2004
但是你的代码中 if exist %%p\bbb\a.exe set lastdrv=%%p在DOS下不好使,没办法查出,所以每次最后盘符都是c或o
第6楼 lianjiang2004 发表于 2006-12-20 10:25
金牌会员 发帖 1,884 积分 3,946
Originally posted by yy2372575 at 2006-12-20 09:05:
先谢谢lianjiang2004
但是你的代码中 if exist %%p\bbb\a.exe set lastdrv=%%p在DOS下不好使,没办法查出,所以每次最后盘符都是c或o

应该不会吧?要不在for上一句加上 set lastdrv=0看看?
第7楼 yy2372575 发表于 2006-12-20 20:37
初级用户 发帖 26 积分 73
还是不好使!!不过挺谢谢你的帮忙,而且你的代码是唯一能在DOS下运行的,顺便问一句,为什么FOR在纯DOS命令不好使了?你的为什么行呢?
第8楼 lianjiang2004 发表于 2006-12-20 21:24
金牌会员 发帖 1,884 积分 3,946
不会是在NTFS分区上吧,是的话,DOS是找不到的,需要加载NTFS驱动。
这段代码就是从我的一个批处理里搬过来的,就是用来确定特定文件所在盘符的。
刚才在纯DOS下试了,可以用。

[ Last edited by lianjiang2004 on 2006-12-20 at 10:12 PM ]
第9楼 yy2372575 发表于 2006-12-21 03:11
初级用户 发帖 26 积分 73
不是NT格式,晕!!为什么你能用我不行呢?你是在纯DOS下运行的吗?我是在虚拟机里运行的。我不会那么背吧,你行我不行!!!救命呀!!!我现在要崩溃了!!为什么FOR命令现在在纯DOS下不好使.不会是虚拟机耍我吧
第10楼 lianjiang2004 发表于 2006-12-21 04:05
金牌会员 发帖 1,884 积分 3,946
我是在纯DOS下用的。我先也是在虚拟DOS下用,盘符能找出,但是中间会有一个出错信息,就是假如你有c: d:,会提示E:出错。这时选A即可。于是我就进入纯DOS,无误。
第11楼 yy2372575 发表于 2006-12-21 05:21
初级用户 发帖 26 积分 73
那有可能,我就是有C D,每次都把盘符设成C,我再试试把C D去掉行不
第12楼 yy2372575 发表于 2006-12-21 05:37
初级用户 发帖 26 积分 73
哈哈,我试过了,好使了。谢谢你几天的大力支持,要不我真不知道能不能坚持下去了!!感谢!!!---__---!!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023