解决CMD命令不能连续执行的问题

前一段时间用批处理文件(.bat或.cmd)写项目构建脚本,发现一个奇怪的问题。

就是几条不同的构建命令,比如下面两条:

coffee -c src/
jade -P demo/

这两条命令每条都可以正常执行。但是当我把这几条命令放到一个批处理脚本文件中执行的时候却不能顺利执行完毕,脚本程序在执行完第一条命令的时候就自动终止了。

对于这个问题,我很是纳闷,不知道问题究竟在哪里。我想这可能是我自己的一个个例,所以暂时只能为每一条指令都设立一个脚本文件,然后每次都按顺序手动运行。

后来呢,我越来越觉得麻烦,总该有个解决办法。然后在网上苦苦搜寻一番,终于找到了一个解决办法(参考页面)。

解决办法就是在每条命令前加一个call命令,例如上面两条命令写成这样:

call coffee -c src/
call jade -P demo/

这样就能顺利执行完所有命令了。

关于原因,遇到同样问题的这位前辈解释说,可能是因为执行那条命令的程序在退出时把当前运行的批处理也提前结束了。而加上call命令后就能让之后的命令在新开的执行环境(可能是进程)中执行,从而防止子命令程序将主脚本程序提前终止。

希望这会对有同样问题的人一些帮助。

时间: 2024-12-28 01:07:04

解决CMD命令不能连续执行的问题的相关文章

CMD命令,动态执行存储或DML命令

--exec master..xp_cmdshell CMD命令 --EXECUTE sys.sp_sqlexec 执行存储 --EXEC sp_executesql 执行DML语句

cmd 命令阻塞继续执行下面的命令的办法

例如在dos下查询硬盘序列号: 首先输入:diskpart-->select disk 0--> detail disk. 如果要在java下面直接查询可以写成一个bat文件写成下面形式: @echo off ( echo select disk 0 echo detail disk )|diskpart 如果想双击执行的话在文件结尾加上: pause

以cmd命令行方式执行php文件时,传递参数

1. php自带的两个参数$argc, $argv: 1.1. $argv : (后面的v是variables的意思),传递进来的参数会以数组的方式保持在这个变量里 1.2. $argc : (后面的c是count的意思),保持$argv中参数的个数,它不是数组 2.例子: 2.1. php代码: <?php if($argc==0) echo "here is no args"; else echo $argc; print_r($argv); ?> 2.2. 运行结果:

C#执行cmd命令相关知识

1.引入 using System.Diagnostics; 2.创建执行CMD Process CmdProcess = new Process(); CmdProcess.StartInfo.FileName = "cmd.exe"; 3.配置开发方式输入输出错误 CmdProcess.StartInfo.CreateNoWindow = true; // 不创建新窗口 CmdProcess.StartInfo.UseShellExecute = false; //不启用shell

常用Windows命令、常用 Cmd命令

常用的Windows 命令使用能够提升工作效率以及快捷处理事项. 下面为平时常用的Windows 命令/cmd 命令. 一.以下命令无需打开cmd 窗口即可操作(输入完毕 打个 回车,即可执行). 1.部署网站需要经常与IIS打交道:(已安装IIS) (Win + R ) + inetmgr  ---快速打开IIS 管理器 (Win + R ) + iisreset  ---快速重启IIS 服务 2.开启控制面板 (Win + R ) + control.exe   ---打开控制面板(可以输入

Atitit.执行cmd 命令行 php

Atitit.执行cmd 命令行 php 1. 执行cmd 命令行,调用系统命令的基础 1 1.1. 实际执行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题,程序文件读取编码设置 1 1.4. 回显乱码 2 2. exec,system等函数调用系统命令 2 3. php.ini,关掉安全模式safe_mode = off 3 4. 参考 3 1. 执行cmd 命令行,调用系统命令的基础 1.1. 实际执行模式 Processmonitor 检查.得到.. PID: 115372,

解决方案--java执行cmd命令ProcessBuilder--出错Exception in thread "main" java.io.IOException: Cannot run program "dir d:\": CreateProcess error=2(xjl456852原创)

当我尝试在java中通过ProcessBuilder运行window的cmd命令时出现错误: public static void main(String [] args) throws IOException { ProcessBuilder builder = new ProcessBuilder(); Process process = builder.command("dir d:\\").start(); InputStream inputStream = process.g

Windows 7的CMD中 Telnet 无法执行的解决办法

Windows 7的CMD中 Telnet 无法执行的解决办法 在Windows 7的CMD中,执行telnet 192.168.1.10 80 会提示没有这个命令的提示,这是因为Win7默认是没有安装Telnet的(在以往的WINDOWS系统中都是默认安装的). 解决办法:在Win7中,进入控制面板,然后进入程序,点击“打开或关闭Windows功能”,然后在出来的功能树菜单中,找到"Telnet客户端",勾选它,然后安装即可,如下图: 安装完成后,然后再进Win7,你就会发现teln

记一次解决cmd中执行java提示&quot;找不到或无法加载主类&quot;的问题

今天遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示"找不到或无法加载主类".现将该问题的原因以及解决办法记录一下. 先理解一下系统变量path和classpath的作用. path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件. 命令行中输入一个命令,则会在path配置的目录中查找该命令,如果存在则调用该程序运行,如果不存在则提示" 'XXX' 不是内部或外部命令,也不是可运行的程序或批处理文件."