我amtrying理解%1 和%1%在批處理腳本,但無論哪種解釋之間的差異在SO沒有意義,是錯誤的,或者我有一個完整的誤解或測試腳本無法正常工作給出。
在Windows 7中,我使用給出的劇本<一個href=\"http://social.technet.microsoft.com/Forums/scriptcenter/en-US/6b7d6b97-3b08-4b14-8b7e-77840fb02c2f/difference-between-1-and-1-in-batch-scripting?forum=ITCG\"相對=nofollow”>這裏:
關閉@echo 設置名稱=阿米特 設置1 =第一 設置2 =第二 回聲我自己的環境變量是: 回聲名稱=%名稱%,1 =%1%,2 =%2% 回聲用戶調用此批處理文件的%1的參數
這給下面的輸出:
&GT; tester.bat 我自己的環境變量是: 名稱=阿米特,1 = 2 用戶使用的參數調用該批處理文件。
和
&GT; tester.bat測試 我自己的環境變量是: 名稱=阿米特,1 = TEST2
我的結論:%1 和%1%是等價的。這是這樣的嗎?
用戶調用此批處理文件與測試的參數。
由於建議的foxidrive:
關閉@echo 回聲%1%ABC%2% 暫停 回聲%1%ABC 2 暫停
運行爲 tester.bat AAA BBB 給第一個輸出: aaa2 和第二輸出 AAA ABC BBB 。
解決方案
是%1%是不正確的語法。
啓動,像這樣這個批處理文件,看看它是如何影響的腳本: file.bat AAA BBB
關閉@echo 回聲%1%ABC%2% 暫停 回聲%1%ABC 2 暫停
下面是控制檯輸出上面的:
aaa2 preSS任意鍵繼續。 。 。 AAA ABC BBB preSS任意鍵繼續。 。 。
這是因爲這個詞%1%ABC%2%被解析爲%1 結果
然後叫環境變量%ABC%這是不是在上述情況下的定義,結果
再加上 2 和一個孤獨的%這將被丟棄。