为什么我的.bat总是在冗长的命令后丢失它的变量

时间:2012-08-05 16:21:23

标签: file variables batch-file

这是我的.bat遭遇逆境。让我们将其命名为b.bat

set loopnum=%1
set url=%2
del "%TEMP%\selectortemp.txt"
del "%TEMP%\selectortemp2.txt"
for /r %loopnum% %%i in (\*.*) do echo %%~ni%%~xi>>"%TEMP%\selectortemp.txt"

echo %loopnum%
pause

set count=0
for /f "usebackq delims=" %%a in (%TEMP%\selectortemp.txt) do set /a count+=1

set /a count2=1
:looping

for /f "tokens=1,2 delims==" %%a in (%config%) do (if %%a==url set url=%%b)

set /p firstline=<"%TEMP%\selectortemp.txt"

del "%url%\%firstline%"

echo "%firstline%"
pause

for /f "skip=1 tokens=*" %%A in (%TEMP%\selectortemp.txt) do echo %%A>>"%TEMP%\selectortemp2.txt"
del "%TEMP%\selectortemp.txt"
rename "%TEMP%\selectortemp2.txt" "selectortemp.txt"

if %count2%==%count% goto endlooping
set /a count2+=1
goto looping
:endlooping

首先,我称之为:

for /l %%i in (0,1,3) do (call b.bat %%i C:\testing)

1 个答案:

答案 0 :(得分:0)

您对自己的问题并不十分具体。 我认为你的意思是你的变量在for循环中丢失了它们的内容。

你需要写!a!代替%。但是你不能用for循环中使用的变量来做这件事。 !! a是不可能的。

请务必启用延迟扩展。

以下是有关enabledelayedexpansion的一些信息:SS64