Board logo

标题: 怎样用FOR循环"简化"以下批处理?(怎样把>>传给变量)? [打印本页]

作者: GOTOmsdos     时间: 2005-4-16 00:00    标题: 怎样用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
....

[此贴子已经被作者于2005-4-16 21:37:10编辑过]



作者: willsort     时间: 2005-4-16 00:00
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
作者: chenhui530     时间: 2005-4-16 00:00
在纯DOS下不可以这样嵌套的~~看楼主的程序应该是在纯DOS下的所以应该使用SHIFT
作者: GOTOmsdos     时间: 2005-4-16 00:00
感谢提醒,用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: ....