我有一个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
任何人都可以帮我找到解决方案吗? ^^
答案 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
)