cmd里call的用法

cmd里call的用法,第1张

批处理程序调用另一个批处理程序。

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 检查磁盘并显示状态芹明报告。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12244184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存