标题: 怎么通过P来确定最后一个硬盘盘符!!
[打印本页]
作者: yy2372575
时间: 2006-12-19 23:42
标题: 怎么通过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 ]
作者: ccwan
时间: 2006-12-20 03:01
试了几种方法,最后定下了这个方案,它避免了将非硬盘分区(如光驱、优盘等)列出。
@echo off
setlocal&set a=
for /d %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do fsutil fsinfo drivetype %%i:>>1.txt
for /f "tokens=1,2* delims= " %%i in ('findstr /c:"固定" 1.txt') do set a=%%i
echo. 最后一个硬盘分区为 %a%
pause>nul
作者: yy2372575
时间: 2006-12-20 05:56
标题: 求救!!
你的代码我试了,XP下可以。在DOS下提示:
SYNTAX ERROR
求你帮忙编一个DOS下的行吗
作者: lianjiang2004
时间: 2006-12-20 06:51
@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 ]
作者: yy2372575
时间: 2006-12-20 09:05
标题: 感谢
先谢谢lianjiang2004
但是你的代码中 if exist %%p\bbb\a.exe set lastdrv=%%p在DOS下不好使,没办法查出,所以每次最后盘符都是c或o
作者: lianjiang2004
时间: 2006-12-20 10:25
Quote: |
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看看?
作者: yy2372575
时间: 2006-12-20 20:37
还是不好使!!不过挺谢谢你的帮忙,而且你的代码是唯一能在DOS下运行的,顺便问一句,为什么FOR在纯DOS命令不好使了?你的为什么行呢?
作者: lianjiang2004
时间: 2006-12-20 21:24
不会是在NTFS分区上吧,是的话,DOS是找不到的,需要加载NTFS驱动。
这段代码就是从我的一个批处理里搬过来的,就是用来确定特定文件所在盘符的。
刚才在纯DOS下试了,可以用。
[
Last edited by lianjiang2004 on 2006-12-20 at 10:12 PM ]
作者: yy2372575
时间: 2006-12-21 03:11
不是NT格式,晕!!为什么你能用我不行呢?你是在纯DOS下运行的吗?我是在虚拟机里运行的。我不会那么背吧,你行我不行!!!救命呀!!!我现在要崩溃了!!为什么FOR命令现在在纯DOS下不好使.不会是虚拟机耍我吧
作者: lianjiang2004
时间: 2006-12-21 04:05
我是在纯DOS下用的。我先也是在虚拟DOS下用,盘符能找出,但是中间会有一个出错信息,就是假如你有c: d:,会提示E:出错。这时选A即可。于是我就进入纯DOS,无误。
作者: yy2372575
时间: 2006-12-21 05:21
那有可能,我就是有C D,每次都把盘符设成C,我再试试把C D去掉行不
作者: yy2372575
时间: 2006-12-21 05:37
哈哈,我试过了,好使了。谢谢你几天的大力支持,要不我真不知道能不能坚持下去了!!感谢!!!---__---!!