是"tokens=1,2 delims=*" 在作怪,删除掉就正常了!如下:
@echo off
for /f %%i in (test.txt) do (
echo %%i*********%CD%
set orig_dir=%CD%
echo orig_dir--------------%orig_dir%
)
pause
XP PRO SP2下测试失败。
如果不想起用延时的环境变量的话,建议用call :标号 参数 结构,而且可以让代码的可读性更好。
@echo off
for /f "tokens=1,2 delims=*" %%i in (test.txt) do call :dosomething %%i
pause
goto :eof
:dosomething
echo %1*********%CD%
set orig_dir=%CD%
echo orig_dir--------------%orig_dir%
goto :eof
请自行测试,修改。