我正在处理的文件(param.txt)是制表符分隔的,第一列的内容是_分隔的。
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?
答案 0 :(得分:2)
尝试将tokens=1
替换为tokens=1,2
。
另请注意,您可以使用单个for循环进行提取,因为您可以指定多个分隔符:
for /f "tokens=1,2,3,4 delims=_ " %%G in ('type param.txt') do (
echo %%G -- %%H -- %%I -- %%J
)
答案 1 :(得分:0)
根据您提出的情况,JRL得到了正确答案。
如果第1列中的值可能包含类似“seven_seven_seven”的值,那么您可能只想在第一列_
上中断。在这种情况下,您希望在第二个FOR语句中使用“tokens = 1 *”。那样%% b将包含“seven_seven”。