Batch file 如何避免Windows cmd批处理进程被子进程停止?

Batch file 如何避免Windows cmd批处理进程被子进程停止?,batch-file,cmd,Batch File,Cmd,我在Windows cmd上运行这个批处理过程是为了更新项目中的一些文件——因为框架不允许更新我正在卸载、清理和重新安装的插件,但这与问题无关 我的问题是,在ionic.cmd进程内的第一个命令中有一些东西会停止整个进程,即使成功。我想它具有某种exit语句,它会停止整个过程,并在不运行下一个文件的情况下返回cmd提示符 我已经尝试通过一些总线进程来改变这个命令,比如START cmd/K。。。因此,没有成功。那么,如果整个脚本不停在那一行,我如何批处理运行该命令呢 @echo off pus

我在Windows cmd上运行这个批处理过程是为了更新项目中的一些文件——因为框架不允许更新我正在卸载、清理和重新安装的插件,但这与问题无关

我的问题是,在ionic.cmd进程内的第一个命令中有一些东西会停止整个进程,即使成功。我想它具有某种exit语句,它会停止整个过程,并在不运行下一个文件的情况下返回cmd提示符

我已经尝试通过一些总线进程来改变这个命令,比如START cmd/K。。。因此,没有成功。那么,如果整个脚本不停在那一行,我如何批处理运行该命令呢

@echo off

pushd %~dp0\..

ionic cordova plugin remove com.mirasense.scanditsdk.plugin
del "platforms\android\app\src\main\res\drawable\*.xml"
del "platforms\android\app\src\main\res\layout\*.xml"
del "platforms\android\app\src\main\res\values\colors.xml"
ionic cordova plugin add lib\scandit

popd

应要求,以下是我的评论作为回答

您已经确定ionic实际上是ionic.cmd;因此,您需要使用Call命令,该命令允许在完成时返回初始脚本

@回音 Pushd%~dp0\ 调用ionic.cmd cordova plugin remove com.mirasense.scanditsdk.plugin Del/Q platforms\android\app\src\main\res\drawable\*.xml Del/Q platforms\android\app\src\main\res\layout\*.xml Del platforms\android\app\src\main\res\values\colors.xml 调用ionic.cmd cordova plugin add lib\scandit 流行音乐
您在问题中已经确定,ionic实际上是ionic.cmd;因此,您需要使用Call命令。i、 e.调用ionic cordova plugin remove com.mirasenes.scanditsdk.plugin并调用ionic cordova plugin add lib\scandit。如果您使用的是start,您正在创建一个单独的进程,因此终止原始进程是非常不寻常的。1是否显示完整的批次代码?可能是脚本中的某个错误导致了崩溃。2我们可以了解更多关于您正在运行的程序的信息吗?可能它做了一些错误的事情,比如在完成后关闭所有命令窗口。它不是在IONAL.cmd中。这是您执行它的方式,控制权被转移到executed.cmd。没有返回到原始脚本。Compo已经展示了解决方案。我建议阅读我的答案,解释从批处理文件中启动或调用批处理文件的四种方法。请注意,pushd%~dp0\。。这不好。更好,因为100%正确,并且几乎总是工作在D%~dp0..\。%dp0引用的路径始终以反斜杠结束。因此,不要用附加反斜杠将此路径与另一个文件/文件夹字符串连接起来,这会导致\\in文件夹路径被Windows自动更正。用%%dp0引用的路径也可能包含一个或多个空格,最关键的路径也可能包含一个或多个空格,这需要用双引号将路径括起来,以传递这样的文件夹路径也可以正确地使用pushd命令。结尾处的反斜杠并不是真正必要的,但我更喜欢让目录/文件夹路径以反斜杠结尾,只要这是可能的,甚至是推荐的。