标题: 怎样用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: ....