2015-04-28 101 views
0

這是我正在處理的代碼段。以雙破折號分隔字符串作爲分隔符,在windows中包含單雙破折號批號

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-groupgroup也正在考慮作爲單獨的令牌。

我想使此代碼適用於所有的事件--key value

+1

你可以做最簡單的事情就是更換 - 有一些真正的不太可能〜。例如'set comd =%comd: - =〜%'在你的行之前。 –

+0

@ScottC你應該做的是,這不是由我一個答案 –

+0

所以不能做任何事情@ScottC –

回答

5

你可以做的最簡單的事情就是替換 - 一些不太可能像〜的東西。例如設置comd =%comd: - =〜%在您的for line之前。然後

你的整個數據塊將是:

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讀 - 幾個好點子有

+0

是 - DELIMS選項指定要用作分隔符的字符列表 - *** not ***要用作分隔符的字符串。 – dbenham

+0

雅我明白你的觀點。謝謝 :) –