导航:首页 > 版本升级 > bat文件call用法

bat文件call用法

发布时间:2021-10-21 01:27:38

㈠ 批处理CALL,调用其他批处理子程序的用法

我觉得问题出现在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

㈡ 批处理call的使用:语句

你代码没加入中断或退出,所以会继续往下执行到 1:的位置,所以会多输出一个1,然后通过goto :eof退出了脚本(此时因为非call调用,goto :eof将退出脚本)

修改方法:

在 call 3: 下面加上 pause 或exit 即可

㈢ 批处理call命令

用start。先cd Data,再start cmd /c b.bat,也可以直接用绝对路径,比如在cd之前先保存%1%或者用push命令。call只能调用脚本内部的代码(我不知道能不能调用外部的)。

㈣ DOS批处理里调用CALL命令的先后问题

呵呵……好说好说……
把所有的call去掉即可顺序执行,即执行1后,等1退出后再执行2……

㈤ 求助批处理call语句解释

call一般用于2钟用途

1. 跳转标签

例:call:标签1

执行到这一种语句,程序脚本会自动匹配到指定的标签:标签1

在从标签那一行继续往下执行(程序由上往下执行)

例:

@echooff
call:text1
echo123
pause

:text1
echo234
pause

例如这一段代码,程序最终会显示字符串234,字符串123则不会显示出来

因为上一句使用了call语句,用于跳转至指定的标签


2. 传递参数

例A:call:text1123
例B:calla.bat123

这2个语句都会传递一个参数,参数是用变量形式传递,%1-%9,默认是9个参数

在使用参数的时候,根据程序需要,都会有一个返回值参数

这个返回值参数,一般用于比较特殊的程序思路,关于返回值的用法,一句二局说不明白

这里我指跟你说一下一般的传递参数的使用

例A

@echooff
call:函数A123
echo%Num%
pause

:函数A
setNum=123
set/aNum+=%1
exit/b

这一段代码,函数A,您可以当做一个函数模块,功能用于计算

如果是一些大型的脚本,方便长期维护,这样的写法是非常好的

call 函数A 标签 传递一个数值123

那么函数A就会吧这个数值用于计算,最后返回回去,得儿最终显示结果


那么例B,其实跟例A用法其实一样,但是里面存在了一个返回值的特性

如果您想了解返回值,多研究exit的语句,纯手打!希望对您有帮助!

㈥ 求批处理中Call详细用法并有例子加以说明,谢谢

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

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

回答者: bmgeng - 三级 2009-5-16 10:57

检举 Call语句调用另一个(子)程序,并等待其执行后返回正确或错误结果.
返回的位置是Call语句的末尾.

Start语句调用另一个(子)程序,但是不需返回.

请比较:
call attrib -h -r c:\auto.bat
start attrib -h -r c:\auto.bat

或:
call attrib -h -r c:\autoexec.bat
start attrib -h -r c:\autoexec.bat

回答者: carlkang - 二级 2009-5-19 18:09

检举 call主要用来执行子程序或另一个bat文件
call format就相当于format

㈦ 请详细讲解下批处理文件echo、@、call、pause、rem 命令的具体用法以及含义

1、
显示信息,或将命令回显打开或关上。

ECHO [ON | OFF]
ECHO [message]

要显示当前回显设置,键入不带参数的 ECHO。
从批处理程序调用另一个批处理程序。

2、
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 可以被其他有效数值替换。
%~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %*
使用

3、
暂停批处理程序,并显示以下消息:
请按任意键继续. . . 在批处理文件或 CONFIG.SYS 里加上注解或说明。

4、
REM [comment]

㈧ 批处理Call命令能给我举例说明吗

楼主没有把代码复制全啊

首先要开启变量延

解释问题

call :assoc %%i tpc %%j 用标签运行 赋值 %1 %2 %3 在这个标签 %1是 %%i %2 是 tcp %3是 %%j

运行 :assoc 得到返回值再显示

其他例句

@echooff
for/f"delims=0"%%iin('help')docall:s%%i
pause
:s
echo所有帮助
echo%1

㈨ 批处理(bat)请教,call命令用法

上一级目录不必用call命令,cd..就改变当前目录到上一级了cd..\..就上两级了
pushd ..\..
echo %cd%
popd
如果是引用需要, 直接用 ..\..\代路径就行了这称为相对路径

㈩ 如何在.bat 中call sh 脚本

java执行jar包中的class命令为:java-classpathxxx.jarpackage.MyTools注意:该MyTools中必须包含main函数.例子:1.业务代码MyTools类含有main函数,包路径为com.my.test,它引用了oracle的驱动classes12.jar最终打包成Tools.jar2.新建start.bat文件,内容如下(注意要引入classes12.jar,以分号间隔)java-classpathTools.jar;classes12.jarcom.my.test.MyToolspause同样,sh脚本:要进行dos2unix#!/bin/shcmddir="`dirname$0`"

阅读全文

与bat文件call用法相关的资料

热点内容
升win10卡在34 浏览:962
sfc文件 浏览:262
公牛苹果数据线2a什么意思 浏览:489
勒索蠕虫检测工具 浏览:68
苹果手表固件描述文件下载 浏览:330
android获取sd卡视频文件 浏览:949
苹果手机设置通用网络设置 浏览:83
md298zpa是什么版本 浏览:317
srslog文件在哪个目录 浏览:948
无法找到文件中可删除的图片 浏览:739
dnf90版本副职业 浏览:848
c只读打开文件 浏览:575
如何在电脑文件上添加图片 浏览:297
xslist网站怎么登录 浏览:735
ftp不能直接打开文件 浏览:145
ps调整后的xps文件 浏览:572
小米如何取消wifi和数据同时使用 浏览:347
微信数据6个g怎么清理 浏览:533
找厂房去哪个app 浏览:881
linuxmini 浏览:997

友情链接