Batch file 循环批处理问题

Batch file 循环批处理问题,batch-file,Batch File,我正在处理的文件(param.txt)用制表符分隔,第一列的内容用uu分隔 param.txt ONE_one two three FOUR_four five six SEVEN_seven eight nine 我创建了以下脚本来处理此文件: @echo off & setlocal enableextensions enabledelayedexpansion for /f "tokens=1,2,3 delims= " %%G in ('type param.

我正在处理的文件(param.txt)用制表符分隔,第一列的内容用uu分隔

param.txt

ONE_one  two  three
FOUR_four  five  six
SEVEN_seven  eight  nine
我创建了以下脚本来处理此文件:

@echo off & setlocal enableextensions enabledelayedexpansion
for /f "tokens=1,2,3 delims=    " %%G in ('type param.txt') do (
  for /f "tokens=1 delims=_" %%a in ('echo %%G') do (
    echo %%a -- %%b -- %%H -- %%I
  )
)
endlocal & goto :EOF
这将产生以下输出:

ONE -- %b -- two -- three
FOUR -- %b -- five -- six
SEVEN -- %b -- eight -- nine

脚本中需要更正哪些内容才能使其打印“值”而不是%b?

尝试将
标记=1
替换为
标记=1,2

还请注意,您可以使用单个for循环进行提取,因为您可以指定多个分隔符:

for /f "tokens=1,2,3,4 delims=_ " %%G in ('type param.txt') do (
  echo %%G -- %%H -- %%I -- %%J
)

根据您介绍的场景,JRL得到了正确的答案

如果第一列中的值可能包含类似“seven\u seven\u seven”的值,那么您可能只想在第一列中中断。在这种情况下,您希望在第二个FOR语句中使用“tokens=1*”。这样%%b将包含“seven_seven”