Windows批處理腳本%1和%1%有區別嗎?

我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 和一個孤獨的%這將被丟棄。

發佈了34 篇原創文章 · 獲贊 32 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章