2010-12-01 75 views
5

我有一個批處理文件test.bat,它從命令行獲取2個參數。調用具有引號參數的批處理文件

Arg1 - "C:\work Area\" 
Arg2 - "Hello politics="Hero Jack"" 

我有打電話的test.bat作爲

test.bat "C:\work Area\" "Hello politics="Hero Jack"" 

我想用bat文件應採取的第二個參數作爲Hello politics="Hero Jack"。我不知道如何用參數調用test.bat,以使它發生如此。 需要的第二個參數就像"Hello politics="Hero,它丟棄了Jack"。你可以讓我知道我錯打電話..

回答

3

在我看來,這是不可能得到它作爲一個參數

Arg2 - "Hello politics="Hero Jack"" 

這是因爲參數tokenizer對插入符號不是很感興趣。 看起來,分詞器只計算引號。

解析器檢測插入記號和能逃脫特殊字符,如&>或<
但誰分割行成%1,%標記生成器2名的參數使用規則。 類似的分隔符; =啓動一個新的參數,這隻能抑制,如果有報價的不平等計數之前

test.bat """This is one param" 
test.bat ""These are four params" 
test.bat ^"This is also one param" 
test.bat ^^"This is also one param" 

但是你可以用一種變通方法,如

test.bat "C:\work Area\" "Hello politics=""Hero Jack"" 

這會在%2「你好政治=「」英雄傑克「」
然後,你可以用單引號替換所有雙引號。

+0

是,實際工作,謝謝 – Sharma 2010-12-02 13:45:41

0

好吧,拿2.嘗試環繞整個參數字符串一對額外的引號:

test.bat ""C:\work Area\" "Hello politics="Hero Jack""" 

來源:http://ss64.com/nt/syntax-esc.html

+0

這並沒有工作,要麼:( – Sharma 2010-12-01 18:54:56

相關問題