2014-10-26 92 views
0

你好如果我运行我的编码没有循环,我得到正确的输出我所期望的。一旦我添加一个循环,我就会丢失文本文件中的%temp%。批量For循环写入文本文件

此代码:

CALL tuo "%_ydeck%" "%_enemy%%%k" ordered -v -t %_threads% -o="%~dp0data"\%_member%.txt yf "%_yfort1%,%_yfort2%" climb %_climb%>>temp.txt 
for /F "delims=" %%t in ('findstr "Optimized Deck:" temp.txt') do set _temp=%%t 
CD Results 
ECHO %_member%,%Date%,%_enemy%%%k,%_yfort1% and %_yfort2%,%_temp%>>Raid.txt 
CD %~dp0 
del temp.txt 

一旦我添加了循环我不明白%_temp%。我需要做些什么来解决这个问题。除非我把它放在错误的地方,否则我已经尝试过SetLocal EnableDelayedExpansion,但没有运气。

以下是不适用于循环的代码。

for %%k in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26) do (
CALL tuo "%_ydeck%" "%_enemy%%%k" ordered -v -t %_threads% -o="%~dp0data"\%_member%.txt yf "%_yfort1%,%_yfort2%" climb %_climb%>>temp.txt 
for /F "delims=" %%t in ('findstr "Optimized Deck:" temp.txt') do set _temp=%%t 
CD Results 
ECHO %_member%,%Date%,%_enemy%%%k,%_yfort1% and %_yfort2%,%_temp%>>Raid.txt 
CD %~dp0 
del temp.txt 
) 

任何帮助,将不胜感激。

回答

0
SetLocal EnableDelayedExpansion 

然后使用%_temp%!_temp!代替

说明: 在批处理当你写%variable%将扩大在编译时变量。 如果您的变量会发生变化(如果您稍后将_temp设置为其他值),则需要启用延迟扩展。这样,您可以决定使用!variable!在运行时而不是编译时扩展该变量。

+0

请编辑您的答案,以添加关于您的代码如何工作以及如何解决OP问题的解释。许多SO海报是新手,不会理解你发布的代码。 – 2014-10-26 17:48:01