2012-12-12 42 views
1
sample.bat a,b,c,d yes 

我試圖通過echoing%2輸出yes,但結果顯示b。我認爲這個逗號也算作逃跑角色或其他東西。如何輸出yes作爲第二個參數?如果第一個參數有逗號,則讀取批處理文件中的第二個參數

+0

正如你所認識的,逗號也是一個參數分隔符,所以你得到5個參數。 'yes'然後在'%5' – jeb

+0

但我希望它是動態的,有時第一個參數可以有6個字母或更多..我只需要一個空間被識別爲參數的分離器..我如何去做? – user1621338

回答

2

參數分隔符是:,;=<space><tab><0xFF>

參數分隔符不能被修改,並且它們不能逃脫。

在參數中包含分隔符的唯一方法是將參數括在引號中。

sample.bat "a,b,c,d" yes 

您可以通過使用~修改

echo %~1 
2

剝去參數報價你可以使用%*代替,並用自己的規則解析它。

for /F "tokens=1,2 delims= " %%A in ("%*") DO (
    echo first=%%A 
    echo second=%%B 
) 
+0

+1,非常真實:) – dbenham

相關問題