Windows批处理脚本(使用多个分隔符拆分字符串)

时间:2017-10-30 09:24:43

标签: windows batch-file

我有一个属性文件(test.properties),它有一个包含多个字符串的变量。 例如:var = str1; str2; str3; .....

我需要在我的批处理文件(abc.bat)中使用上面的属性文件,这样我就可以逐行打印这些值。批处理文件的输出应该如下所示...... str1 str2 str3 ... ... (依此类推)

任何帮助都可以被赞赏。谢谢:)

我曾尝试使用" for loop"以这种方式从第一个分隔符(=)中分离值...

IF EXIST "test.properties"
(
    ECHO test.properties file found
    for /F "tokens=1,2 delims==" %%A IN (test.properties) DO
    (
        set value="%%B"
        ECHO !value!
    ) 
)
Output=str1;str2;str3;....

现在,如果我想解析"!value中的字符串!"逐行使用......

for /F "tokens=* delims=;" %%x IN ("!value!") DO
(
    ECHO %%x
)

我正面临错误.....有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

只需使用普通for来获取列表的元素(;是标准分隔符)

@echo off
setlocal enabledelayedexpansion

>test.properties echo var=str1;str2;str3;str4;str5;str6

IF EXIST "test.properties" (
    ECHO test.properties file found
    for /F "tokens=1,2 delims==" %%A IN (test.properties) DO (
        set "value=%%B"
        ECHO !value!
    ) 
    for %%x IN (!value!) DO echo %%x
)