批处理中的call命令

之前写打包的批处理,应为有很多个步骤,所以批处理命令略多,而且必须按顺序执行才可以。

但是在实现过程中,发现调用外部bat之后,命令会中断,后面的命令就不再执行!

想到的解决办法是,用start命令,启动另一个控制台来执行外部bat,但是仍然存在一个问题:之后的命令不会等待外部批处理执行完成,而是立即执行,导致了一些问题。临时解决办法是,start之后,用个pause。虽然方法可行,但是不是全自动,需要去点击一次,如果同时执行多个,那就要点击很多次,不太方便。而且每个start还会开启一个控制台,最后可能会有几十个控制台需要手动关闭,大大的麻烦。

而在linux下,使用shell,却没有这样的问题。后来无意间,用C++的system执行批处理,也能做到等待调用完成,再执行下一个,于是乎认为批处理肯定有解决方案,开始查找,最终发现了call命令……

将所有start换成call,问题完美解决。

时间: 2024-11-06 13:38:40

批处理中的call命令的相关文章

批处理中的echo命令图文详解

批处理中的echo命令图文详解 1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类似的标志,如图所示: 3. ECHO OFF 将ECHO状态设置为OFF,将不显示命令行,也就是前面的C:\>类似的标志,其他功能一样,用户也可以输入命令,也可以显示命令结果,如图所示: 4. ECHO 字符串 将输入的字符串显示在CMD屏幕上.如图所示 5. ECHO 字符串 &ECHO 字符

批处理中使用shift命令循环读取命令行参数

main.bat 1 @echo off 2 3 :loop 4 if %1a==a goto :end 5 echo [%1] 6 shift 7 goto :loop 8 9 :end 10 pause 注意:代码中%1a==a是为了避免参数中包含双引号而导致批处理异常结束. 原文地址:https://www.cnblogs.com/rms365/p/10961538.html

【分享】批处理中分割字符串

把一个字符串按照特定的字符分割成多个子字符,一般的编程语言中都提供内置的方法来实现这个功能,在批处理中可以通过命令for来完成.命令格式如下: for /f "tokens=x,y,m-n delims=chars" %%a in ("str") do cmd 其中tokens获取分割后字符串的列数,列数从1开始技术,可以指定多个,中间用“,”分割.tokens设置具体含义如下: tokens=x 表示只提取第x列. tokens=x,y 表示只提取第x列和第y列.

bat中rar压缩命令

bat中rar压缩命令 数据库备份,导出的dmp 文件比较大,需要压缩,压缩后大小能变为原来十分之一左右吧. 写的是批处理的语句,每天调用,自动导出dmp 文件,压缩删除原文件. 首先写下路径,先将压缩软件的路径写入系统的环境变量里,加入到path中.比如将"C:\Program Files\WinRAR\"加入到path中. 之后批处理中写好相应的处理命令: rar a -df %filename%.rar %filename%.dmp 附: 压缩参数 用法:     rar <

【转】BAT批处理中的字符串处理详解(字符串截取)

下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %ifo:~0,5% ech

php在linux中执行外部命令

目录:一.PHP中调用外部命令介绍二.关于安全问题三.关于超时问题四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍在PHP中调用外部命令,可以用,1>调用专门函数.2>反引号.3>popen()函数打开进程,三种方法来实现: 方法一:用PHP提供的专门函数(四个):PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()1)exec()原型: string exec ( string $co

bat批处理中怎样用while循环

bat 常用命令 echo.@.call.pause.rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起. ==== 注 =========== 首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: CR(0D) 命令行结束符 Escape(1B) ANSI转义字符引导符 Space(20) 常用的参数界定符 Tab(09) ; = 不常用的参数界定符  + COPY命

Windows批处理(cmd/bat)常用命令小结

转载自:“趣IT”微信公共号 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效. 在Windows中善用批处理可以简化很多重复工作 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见

dos下 和 批处理中的 for 语句的基本用法

for 语句的基本用法 : 最复杂的for 语句,也有其基本形态,它的模样是这样的:   在cmd 窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do command2 之所以要区分 cmd 窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同,最明显的一个差异就是:在cmd 窗口中,for 之后的形式变量I 必须使用单百分号引用,即%I:而在批处理文件