使用双破折号拆分字符串作为分隔符,在Windows批处理中包含单个和双破折号

Sub*_*thi 0 regex cmd batch-file

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

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 
    )
Run Code Online (Sandbox Code Playgroud)

我要拿出group-name xxx作为一个令牌,并user-name yyy为另一个,但是当我使用--的分隔符它认为字符串,-也适合被在这种情况下,如此符号化groupcreate-group,也被视为单独的令牌.

我想让这段代码适用于所有事件--key value.

Sco*_*t C 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 
)
Run Code Online (Sandbox Code Playgroud)

您可能还想阅读如何使用BATCH文件中的SWITCH解析命令行参数 - 那里有一些好主意