批处理文件多个令牌多个变量

2 variables for-loop batch-file token delimiter

我试图读取文件的每行两个不同的字段,并将这些字段分配给两个不同的变量,以便我可以在 for 循环中一起使用这两个变量。

现在我有

for /f "tokens=6 delims=:. " %%a in ('type %1% ^| findstr /R /V "Test"') do (
echo %%a
)

for /f "tokens=12 delims=:. " %%b in ('type %1% ^| findstr /R /V "Test"') do (
echo %%b
)
Run Code Online (Sandbox Code Playgroud)

反正有没有把它们组合成类似的东西

for /f "tokens=6,12 delims=:. " %%a %%b in ('type %1% ^| findstr /R /V "Test"') do (
echo %%a
echo %%b
)
Run Code Online (Sandbox Code Playgroud)

因为现在这个说法行不通。

Ans*_*ers 5

这应该有效:

for /f "tokens=6,12 delims=:. " %%a in ('type "%~1" ^| findstr /R /V "Test"') do (
  echo %%a
  echo %%b
)
Run Code Online (Sandbox Code Playgroud)

可以简化为

for /f "tokens=6,12 delims=:. " %%a in ('findstr /V "Test" "%~1"') do (
  echo %%a
  echo %%b
)
Run Code Online (Sandbox Code Playgroud)

因为findstr可以很好地从文件中读取,而且您无论如何都没有使用正则表达式。