中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 13:28
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样用FOR循环"简化"以下批处理?(怎样把>>传给变量)?
可打印版本  2,103 / 3
第1楼 GOTOmsdos 发表于 2005-04-16 00:00
铂金会员 发帖 1,827 积分 5,154
怎样用FOR循环"简化"以下批处理?(怎样把>>传给变量)?
怎样用FOR循环"简化"以下批处理,实现把findd.txt 中的盘符写入drive.txt文件(以给WBAT调用)?
find "C:\" findd.txt >nul
if not errorlevel 1 echo C:>>drive.txt
find "D:\" findd.txt >nul
if not errorlevel 1 echo D:>>drive.txt
find "E:\" findd.txt >nul
....

第2楼 willsort 发表于 2005-04-16 00:00
元老会员 发帖 1,512 积分 4,432
Re GOTOmsdos:  尽管用FOR循环也是可以实现的,但是我并不建议使用它,因为它对内部过程的控制不灵活;我建议你使用命令行循环,我曾经给walu兄写过几个类似的程序,你可以参考下面的链接修改一下:  http://bbs.cn-dos.net/dispbbs.asp?boardid=12&id=9637  http://bbs.cn-dos.net/dispbbs.asp?boardid=9&id=11963  http://bbs.cn-dos.net/dispbbs.asp?boardid=12&id=14552  http://bbs.cn-dos.net/dispbbs.asp?BoardID=9&ID=14512
第3楼 chenhui530 发表于 2005-04-16 00:00
高级用户 发帖 273 积分 772
在纯DOS下不可以这样嵌套的~~看楼主的程序应该是在纯DOS下的所以应该使用SHIFT
第4楼 GOTOmsdos 发表于 2005-04-16 00:00
铂金会员 发帖 1,827 积分 5,154
感谢提醒,用SHIFT配合一个参数就行了, 用FOR还真是难办!drive.bat:@echo off
:loop
if "%1"=="" goto end
find "%1" findd.txt>nul
if not errorlevel 1 echo %1>>drive.txt
shift
goto loop
:end
输入:drive c: d: e: ....
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023