chang-pony
|
分享:
▲
▼
以下是 DOS 指令集中 CALL 的详细解说,不知道是否合适? 从批次程式中呼叫另一程式。
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批次程式所需要的指令行资讯。
如果您启用扩充指令,CALL 指令的变更如下:
CALL 命令现在可以用标签来当作 CALL 指令的目标。语法为:
CALL :label arguments
这会用指定的 arguments 来建立一个新的批次档档案内容,而且控制权 会被传到指定的 label 后的叙述。您必须 "exit" 两次,因为批次档 的结尾会被执行两次。第一次您读入批次档结尾时,控制权会回到 CALL 描述的下一个叙述。而第二次则会结束批次档的执行。请键入 GOTO /? 来获得 GOTO :EOF 扩充命令的描述。 这个命令可以让您从批次档中 "return" 。
此外,批次档参数的参考 (%0, %1, 及其它) 已经做了如下的扩充:
%* 在批次档中,这代表所有的参数 (e.g. %1 %2 %3 %4 %5 ...)
批次参数的取代 (%n) 已经做了改进。 您现在可以 选用下列的语法:
%~1 - 展开 %1 且移除包围的引号 (") %~f1 - 展开 %1 为一个完全符合的路径名称 %~d1 - 只展开 %1 为磁碟机字元 %~p1 - 只展开 %1 为路径 %~n1 - 只展开 %1 为档名 %~x1 - 只展开 %1 为副档名 %~s1 - 展开的路径只包含短档名 %~a1 - 展开 %1 为档案的档案属性 %~t1 - 展开 %1 为档案的日期/时间 %~z1 - 展开 %1 为档案的长度 %~$PATH:1 - 搜寻所有列在 PATH 环境变数内的目录 且展开 %1 为 第一个找到的完全符合档名。 如果没有定义环境变数名称 或是搜寻找不到档案, 则这个修饰元会展开成 空字串。
修正程式可合并使用,进而得到复合结果:
%~dp1 - 只扩充 %1 到磁碟机代号和路径 %~nx1 - 只扩充 %1 到档案名称和副档名 %~dp$PATH:1 - 搜寻 %1 的 PATH 环境 变数中所列的目录,并扩充至 磁碟机代号和第一个找到的路径。 %~ftza1 - 将 %1 扩充成 DIR ,和输出行相同
在上例中,%1 和 PATH 可被其他有效值取代。%~ 语法是 以正确的引数数字作结尾。%~ 修正程式可能无法使用 %*
|