Windows批处理脚本用逗号分隔的单引号内部解析字符串

时间:2016-04-13 19:06:53

标签: parsing batch-file text

input.txt中:

['Chinese Simplified', 'Traditional Chinese HK', 'Traditional Chinese TW', 'English', 'French', 'German', 'Indonesian', 'Italian', 'Korean', 'Malay', 'Portuguese', 'Portuguese Brasil', 'Russian', 'Spanish', 'Spanish Latin', 'Tagalog']

期望的输出:

简体中文

繁体中文香港

繁体中文TW

ETC。

我试过这样的事情:

for / f"令牌= 3" %% A in(' findstr / c:," input.txt"')执行回显%% A>> output.txt的

1 个答案:

答案 0 :(得分:1)

@ECHO Off
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q36607414.txt"

FOR /f "usebackqdelims=[]" %%a IN ("%filename1%") DO (
 SET "line=%%a"
 SET "line=!line:'="!"
 FOR %%b IN (!line!) DO ECHO(%%~b
)

GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

我使用了一个名为q36607414.txt的文件,其中包含我的测试数据。

读取每一行,将括号分隔的第一个标记分配给%%a

转移到line进行字符串操作

使用delayedexpansion将'替换为",以访问line的运行时值

使用简单的for反复生成以空格和逗号分隔的引用项目列表; ~删除了引号。