我目前正在試圖串連我的命令行參數與此:如何連接批處理文件的命令行參數?
for %%a in (%*) do set "subject=%subject% %%a"
因此,舉例來說,如果我跑
my.bat subject line here
應該爲「主題行這裏」設置我的主題變量,保留空間。但是,目前運行後,我的主題變量被設置爲最後一個單詞。我的主題值是「here」。
如何連接命令行參數是否正確?
我目前正在試圖串連我的命令行參數與此:如何連接批處理文件的命令行參數?
for %%a in (%*) do set "subject=%subject% %%a"
因此,舉例來說,如果我跑
my.bat subject line here
應該爲「主題行這裏」設置我的主題變量,保留空間。但是,目前運行後,我的主題變量被設置爲最後一個單詞。我的主題值是「here」。
如何連接命令行參數是否正確?
你就不能這樣做:
SET subject=%*
或者啓用延遲擴展,這樣的環境變量沒有得到解析過程中取代。
Setlocal EnableDelayedExpansion
for %%a in (%*) do set subject=!subject! %%a
echo %subject%
查看Difference between %variable% and !variable! in batch file瞭解更多信息。
謝謝!這工作完美 – thuy
沒有問題,如果這解決了您的問題,然後請勾選解決方案接受。 – FloatingKiwi
如果您想知道爲什麼環境變量'subject'在__FOR__循環之後沒有期望的字符串,請打開命令提示符窗口,運行'set /?'並讀取所有輸出幫助頁。有一個與你的例子非常相似的「for」例子,這就解釋了爲什麼必須使用延遲擴展來連接正確的字符串。 – Mofi