如何在批处理文件里面获得当前系统的最后一个盘符(XP)

来源:百度知道 编辑:UC知道 时间:2024/05/20 03:26:37
我用以下两中网上的方法做过BAT 可是没有奏效 恳请高手指点
在一个批处理中包含如下内容:
set lastdrv=
call getlastdrv.bat z: y: x: w: v: u: t: s: r: q: p: o: n: m: l: k: j: i: h: g: f: e: d: c: b: a:
echo %lastdrv%
需要调用的得到最后驱动器号的批处理如下:
getlastdrv.bat
:begin
if exists %1\nul goto end
shift
goto begin
:end
set lastdrv=%1

另一个
set lastdrv=
for %%i in (z y x w v u t s r q p o n m l k j i h g f e d c) do call chkdrv.bat %%i

其中chkdrv.bat如下:
if not %lastdrv%'==' goto _end
if %1'==' goto _end
if %1==%cdrom% goto _end
if %1==%RAMD% goto _end
dready %1 /w
if errorlevel 2 goto _end
set lastdrv=%1
:_end

已明确XP系统的话
就不必去使用复杂的盘符枚举程序了
在提示符下输入
fsutil fsinfo drives
就得到了所有的盘符
我们要做的就是从中取得最后一个
批处理可以参考以下形式

@echo off
for /F "tokens=*" %%i in ('fsutil fsinfo drives ^| find ":"') do @set d=%%i
echo %d%

这样就得到了最后的驱动器
很有可能就是光驱

如果要求得到的是最后一个硬盘盘符
也有响应的扩展方法
楼主可以参考联机命令行帮助
运行
hh ntcmds.chm::ntcmds.htm
即可查看

SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
set LglDrv=

我不能肯定,大概是这样的,你试试看。

上面的回答者真是不负责,CTRL+C CTRL+V玩多了吧

你这样试试:
在一个批处理中包含如下内容:
@echo off
set lastdrv=
call getlastdrv.bat z:y: x: w: v: u: t: s: r: q: p: o: n: m: l: k: j: i: h: g: f: e: d: c: b: a:
echo %lastdrv