这是我正在处理的一段代码。
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
。
答案 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 - 其中一些好主意