2014-10-26 54 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