2014-09-26 125 views
0

我是新來的bat文件。 我嘗試調用以2個參數這樣的功能:蝙蝠文件參數衝突?

How I run the bat in my local machine 
c:\remote.bat pass1 pass2 pass3 pass4 
============================================================================= 
inside remote.bat 

call:ECHOPATH %ip% log 

:ECHOPATH 
echo .\%1Server_Report\%2 

然而,問題是,這個bat文件位於遠程機器上,當我從我的本地機器叫吧,我居然通過了4個參數太。 現在,%1和%2被識別爲我在調用bat文件時傳入的值,而不是函數。 我的目標是在執行bat文件時調用不同的參數,並在調用bat文件中的函數時使用另一組參數。 打電話給我一些幫助嗎?非常感謝你。

回答

0

當批處理文件被編碼時,你的問題是沒有任何東西阻止第一次調用後執行進入子例程。也就是說,調用該函數,傳遞和使用兩個參數,子線結束,在調用後繼續執行,再次執行標籤後的代碼,這次沒有調用,所以參數%1,%2現在是參考到批處理文件參數。

+0

感謝您的回答。 對不起,我不太清楚bat文件的整個執行過程。在第一次調用之後,如何防止執行進入子程序?我應該在調用標籤之前將它設置爲null嗎?如果是,那麼將%1設置爲null的語法是什麼? – 2014-09-26 06:40:22

+0

在調用之前,我通過設置「%1 =」設置「%2 =」將它們設置爲null,現在它按照我想要的方式工作。由於 – 2014-09-26 07:31:40

+0

@LuisLiu,防止執行進入子程序不打算時最簡單的方法是代替'退出/ B'或和'轉到:eof'前':echopath'或在主線結束執行(通常兩個地方都是一樣的) – 2014-09-26 07:53:02