这样理解就可以了,虽然可能还是不太严谨,但我一直是这么过来的。
call的作用好多啊。调用、解析变量。
关于调用,call/?中说的已经很清楚了,可以对一个外部批处理进行调用的同时给它传递参数,也可以当前的另外一个标签进行调用,同样可以传递参数。示例:- @echo off
- call :lp1 我是参数
- goto lp2
- :lp1
- echo %1
- goto :eof
- :lp2
- echo [%1] —— %%1在我这里不管用了。
- pause>nul&exit/b
复制代码 详细请参照这篇帖子: goto for call三种句式 http://bbs.bathome.net/viewthread.php?tid=1267
关于call解释变量,如下,测试两段代码。
一、
- @echo off
- :: %windir%
- :: Purification
- :: %computername%
- :: %username%
- :: %random% %random%
- :: %time%
- for /f "delims=" %%a in (%~fs0) do echo %%a
- pause
复制代码 二、
- @echo off
- :: %windir%
- :: Purification
- :: %computername%
- :: %username%
- :: %random% %random%
- :: %time%
- for /f "delims=" %%a in (%~fs0) do call echo %%a
- pause
复制代码
请先注意两段代码的区别。。第二个只不过比第一个多了一个call,运行,分别看下两段代码的输出结果。希望你能从中总结出什么道道。
[ 本帖最后由 pusofalse 于 2008-8-12 09:55 编辑 ] |