Batch For循环写入文本文件

时间:2014-10-26 16:20:42

标签: loops batch-file for-loop text

你好如果我在没有循环的情况下运行我的编码,我得到正确的输出我希望。添加循环后,我将文本文件中的%temp%松开。

此代码有效:

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
)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

SetLocal EnableDelayedExpansion

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

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