CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批和悉处理程序所需的命令行信息。
如果命令扩展名被启用,CALL 会如下改变:
CALL 命令现在将卷标当作 CALL 的目标接受。语法是:
CALL:label arguments
一个新的批文件上下文由指定的参数所创建,控制在卷标被指定
后传递到语句。您必须通过达到批脚本文件末两次来 "exit" 两次。
第一次读到文件末时,控制会回到 CALL 语句的紧后面。第二次
会退出批脚本。键入 GOTO /?,参看 GOTO : EOF 扩展名的描述,
此描述允许您从一个批脚本返回。
另外,批脚本文本参数参照(%0、%1、等等)已如下改变:
批脚本里的 %* 指出所有的参数(如 %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 - 在列在 PATH 环境变量中的目录里查找 %1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1 - 将 %1 扩展到类似 DIR 的输出行。
在上面的例子中,%1 和 PATH 可以被其他有效数值替换。
%~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %*
使用
来自:cmd ——>call /? >xxx.txt
我觉得问题出现在e的身上,如果你有学过C语言的话应该比较好理解。就是C只是在2.cmd这个文件中,作为里面的一陆改个局部的参数,调用了1.cmd,虽然在1.cmd里面做了早竖判运算,但运算的结果是没有传递出来的。所以e的值还是为0.就好像C要用return 把参数值传回来那样,又或者,如果e是一个全局变量的话,或许还行。不过在DOS里面我不知道有没有全纤源局变量这个概念。所以,你要实现这种值传递的话,恐怕,用批处理不是什么好的选择。如果你只是想学习一下call的调用的话,基本上你已经会了后来想想,或许能用批处理中的errorlevel作为返回值。于是把你的批处理修改了一下,代码如下:
一、1.cmd
@echo off
set /a t=%1+1
set errorlevel=%t%
GOTO :EOF
二、2.cmd
@ECHO OFF
set /a e=0
call 1.cmd 22
set e=%errorlevel%
echo %e%
pause>nul
这样就实现了值传递了,如有需要,我们可以探讨一下,我的QQ:243488442
CMD可以做一些在Windows下面做不了的工作,有些时候解决一些问题必须在CMD下面在可以。XP.CMD命令
有关某个命令的详细信息,键入 HELP 命令名
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展高激式 CTRL+C 检查。
CACLS 显示或修改文件的访问控制列表(ACLs)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目戚首袜录的名称或将其更改。
CHKDSK 检查磁盘并显示状态芹明报告。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)