Batch file 循环批处理问题
我正在处理的文件(param.txt)用制表符分隔,第一列的内容用uu分隔 param.txtBatch 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.
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”