2016-08-19 90 views
0

我目前正在試圖串連我的命令行參數與此:如何連接批處理文件的命令行參數?

for %%a in (%*) do set "subject=%subject% %%a" 

因此,舉例來說,如果我跑

my.bat subject line here 

應該爲「主題行這裏」設置我的主題變量,保留空間。但是,目前運行後,我的主題變量被設置爲最後一個單詞。我的主題值是「here」。

如何連接命令行參數是否正確?

+0

如果您想知道爲什麼環境變量'subject'在__FOR__循環之後沒有期望的字符串,請打開命令提示符窗口,運行'set /?'並讀取所有輸出幫助頁。有一個與你的例子非常相似的「for」例子,這就解釋了爲什麼必須使用延遲擴展來連接正確的字符串。 – Mofi

回答

3

你就不能這樣做:

SET subject=%* 

或者啓用延遲擴展,這樣的環境變量沒有得到解析過程中取代。

Setlocal EnableDelayedExpansion 
for %%a in (%*) do set subject=!subject! %%a 
echo %subject% 

查看Difference between %variable% and !variable! in batch file瞭解更多信息。

+0

謝謝!這工作完美 – thuy

+0

沒有問題,如果這解決了您的問題,然後請勾選解決方案接受。 – FloatingKiwi

相關問題