批处理中for()的问题
在temp.txt中保存不同文件夹的路径,然后希望分别进入这些文件夹,读取其中的文件for/f%%ain(temp.txt)do(for/r%%a%%iin(*.bat)...
在temp.txt中保存不同文件夹的路径,然后希望分别进入这些文件夹,读取其中的文件
for /f %%a in (temp.txt) do (
for /r %%a %%i in (*.bat) do (
type %%i
)
)
结果显示不该出现%%a
想问:1、for能这样双循环吗?
2、for /r 这里连用%%a %%i,的确不对,那应该怎样写?
希望有达人详细解说一下for的使用事项 展开
for /f %%a in (temp.txt) do (
for /r %%a %%i in (*.bat) do (
type %%i
)
)
结果显示不该出现%%a
想问:1、for能这样双循环吗?
2、for /r 这里连用%%a %%i,的确不对,那应该怎样写?
希望有达人详细解说一下for的使用事项 展开
2个回答
展开全部
1.for当然可以多层套循环,只是每个for命令指定的变量%%a不要重复,那样会乱套的..
2.for /r后面跟的是路径,是指某个位置的路径,你这的%%a是指temp.txt文件的每一行了,不应该这么写。
可能是你的这个txt文件每行都是一个路径吧.???
for /r后面跟定的路径可以用变量表示,但不能是前一个for中的变量%%a,需是其它类型的变量,如%windir%等;
可以采用变通的方法在下一个for之前加上cd命令,将命令行位置切换至某路径,然后下一个for /r后面就不用加路径了,就是以刚才切换过来的路径为准..
写个例子,全盘(cdef盘)搜索temp.txt文件.
@echo off
for %%a in (c d e f) do (
cd /d %%a:
for /r %%b in (temp.txt) do echo %%b
)
pause
2.for /r后面跟的是路径,是指某个位置的路径,你这的%%a是指temp.txt文件的每一行了,不应该这么写。
可能是你的这个txt文件每行都是一个路径吧.???
for /r后面跟定的路径可以用变量表示,但不能是前一个for中的变量%%a,需是其它类型的变量,如%windir%等;
可以采用变通的方法在下一个for之前加上cd命令,将命令行位置切换至某路径,然后下一个for /r后面就不用加路径了,就是以刚才切换过来的路径为准..
写个例子,全盘(cdef盘)搜索temp.txt文件.
@echo off
for %%a in (c d e f) do (
cd /d %%a:
for /r %%b in (temp.txt) do echo %%b
)
pause
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询