将带有双短划线的字符串拆分为包含单个和&的分隔符。在Windows批处理中双击

时间:2015-04-28 01:38:31

标签: regex batch-file cmd

这是我正在处理的一段代码。

set "comd=aws iam create-group --group-name xxx --user-name yyy"
    for /f "tokens=2,3delims=--" %%a in ("%comd%") do (
       echo %%a 
       echo %%b 
    )

我想将group-name xxx作为一个标记,user-name yyy作为另一个标记,但是 当我使用--作为分隔符时,它认为带有-的字符串也适合进行标记化,因此在这种情况下group的{​​{1}}也被视为单独的标记。

我想让这段代码适用于所有出现的create-group

1 个答案:

答案 0 :(得分:5)

你能做的最简单的事就是替换 - 用一些不太可能的东西来代替〜。例如在你的换行之前设置comd =%comd: - =〜%。

您的完整区块将是:

set "comd=aws iam create-group --group-name xxx --user-name yyy"
set comd=%comd:--=~%
for /f "tokens=2,3 delims=~" %%a in ("%comd%") do (
   echo %%a 
   echo %%b 
)

您可能还想阅读How to parse command line arguments with SWITCH in BATCH file - 其中一些好主意