6
试图制作一个.bat脚本,并需要获得一些正常工作的字符串。Cmd:不评估循环内的变量
这是我到目前为止
@echo off
for /r %%i in (*.csv) do (
set str=%%i
set str=%str:csv=rar%
echo %%i
echo.%str%
)
说我有这个运行用C了:\,并得到了5 CSV,1.csv,2.csv ... 5.csv
我第一次运行它,我得到的输出:
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
我第二次获得:
C:\1.csv
csv=rar
C:\2.csv
csv=rar
C:\3.csv
csv=rar
C:\4.csv
csv=rar
C:\5.csv
然后,所有后续调用我得到:
C:\1.csv
rar=rar
C:\2.csv
rar=rar
C:\3.csv
rar=rar
C:\4.csv
rar=rar
C:\5.csv
当什么,我会期待得到的是直通:
C:\1.csv
C:\1.rar
C:\2.csv
C:\2.rar
C:\3.csv
C:\3.rar
C:\4.csv
C:\4.rar
C:\5.csv
C:\5.rar
所以我删除替代:
@echo off
for /r %%i in (*.csv) do (
echo %%i
set str=%%i
echo.%str%
)
首先运行:
C:\1.csv
C:\2.csv
C:\3.csv
C:\4.csv
C:\5.csv
第二轮:
C:\1.csv
C:\5.csv
C:\2.csv
C:\5.csv
C:\3.csv
C:\5.csv
C:\4.csv
C:\5.csv
C:\5.csv
C:\5.csv
它就像它不设置str变量,直到循环的最后运行,即使它试图回声出变量,它的线设置后出现,然后保存在这个为下一个循环?在处理循环的方式中是否有某些我错过的东西?
谢谢
你先生,是个绅士! (我可以在5分钟内接受) – Psytronic 2010-10-21 12:55:33
这是一个批处理文件的常见问题......几个月前,我被欺骗了...... – Benoit 2010-10-21 12:58:08