中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 19:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [寻求完善]一个判断光驱的新办法 查看 2,797 回复 17
16 发表于 2008-05-28 22:13 ·  中国 江苏 苏州 常熟市 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
23年会员
UID 881
性别 男
来自 江苏
状态 离线
还有点问题请教。

据说 fsutil 这个命令只能限制成管理员用, 而且XP Pro版才能用。

dir [drive] >nul 2>nul 这个太有用了。

但是否我们只能回到 for %%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 if exist %%i\WIN51 set CDROM=%%i

这个老路上去? 这条老路也有缺陷,就是要判断特定文件, 有无更好办法呢?
17 发表于 2008-05-28 23:08 ·  中国 江苏 苏州 常熟市 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
23年会员
UID 881
性别 男
来自 江苏
状态 离线
根据26933062思路, 我做了个

@echo off&setlocal EnableDelayedExpansion
for /f "usebackq skip=1 tokens=2 delims==" %%a in (`findcd /s`) do (
set "str=%%a"
set "str=!str:~0,1!"
dir !str!: >nul 2>nul
chcp 936>nul
if !ERRORLEVEL! equ 0 (echo.&echo 光盘是 !str! 盘 里面有光盘) else (
echo.&echo 光盘是 !str! 盘 无光盘
))
echo.&pause&exit


说明: findcd.exe 是第三方程序,只有3.11K

这个程序 findcd 如果加 /s 参数则列出多光盘,结果如下例:

CDROM=2
CDROM1=H:
CDROM2=I:

在老DOS下 会赋值给上述变量, 省却许多麻烦, 但在XP下却不能!而且会改变 codepage, 所以我加了条 CHCP 936。

实际运行结果如下:

光盘是 2 盘 里面有光盘

光盘是 H 盘 里面有光盘

光盘是 I 盘 里面有光盘

请按任意键继续. . .


怎么会多了一行,似乎 Skip=1 没用处,不解。

怎么没办法插入附件? 我想附上 findcd的程序。这儿下载

[ Last edited by quya on 2008-5-28 at 11:29 PM ]
18 发表于 2008-05-29 19:34 ·  中国 重庆 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
%var1%^|more
%var2% %%a:
11楼这招看起来很整洁啊!

[ Last edited by WANKOILZ on 2008-5-29 at 07:38 PM ]
论坛跳转: