2014-09-26 119 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