使用for

时间:2015-05-07 15:29:09

标签: batch-file

我有一个myFile.TXT,让我们这样说:

PAR2:VAL2
PAR3:VAL3
PAR4:VAL4
PAR5:VAL5

使用Batch,我想取值将它们写入另一个文件,例如grant:

MYval_2 VAL2
MYval_3 VAL3
MYval_4 VAL4
MYval_5 VAL5

。我试过这个:

for /f  "tokens=2 delims=: " %%a in (myFile.txt) do (
echo MYval_2 %%a >> otherFile.txt
echo MYval_3 %%a >> otherFile.txt
echo MYval_4 %%a >> otherFile.txt
echo MYval_5 %%a >> otherFile.txt
)

但正如预期的那样,我以这种方式循环5次文件得到这个:

val_2 VAL2
val_3 VAL2
val_4 VAL2
val_5 VAL2
val_2 VAL3
val_3 VAL3
val_4 VAL3
val_5 VAL3
val_2 VAL4
val_3 VAL4
val_4 VAL4
val_5 VAL4
val_2 VAL5
val_3 VAL5
val_4 VAL5
val_5 VAL5

任何人都可以帮我找到解决方案吗? ^^

2 个答案:

答案 0 :(得分:0)

下面你基本上是根据myFile.txt设置变量然后你把它们的值写到otherFile.txt

for /f "delims=" %%x in (myFile.txt) do (
  set str=%%x
  set str=%str::==%
  set "%str%"
)

echo %PAR2% >> otherFile.txt
echo %PAR3% >> otherFile.txt
echo %PAR4% >> otherFile.txt
echo %PAR5% >> otherFile.txt

答案 1 :(得分:0)

此代码假设您始终希望以MYval_2开头,并为每行计算一次。

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET COUNT=2
FOR /F  "tokens=2 delims=: " %%a IN (myFile.txt) DO (
  ECHO MYval_!COUNT! %%a>>otherFile.txt
  SET /A COUNT+=1
)