拆分带有双破折号作为分隔符的字符串,其中包含窗口批处理中的单破折号和双破折号



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

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作为另一种令牌,但是当我使用 -- 作为分隔符时,它认为带有-字符串也适合被标记化,因此在这种情况下,create-group group也被视为单独的标记。

我想使此代码适用于--key value出现的所有情况。

你可以做的最简单的事情是用像~这样不太可能的东西替换。 例如,在 for 行之前设置 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 
)

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

相关内容

最新更新