我编写了一个运行一系列命令的 MS DOS 批处理文件。
每个命令调用一个带有一些特定参数的程序。为了自动化这个,我组合了所有的命令。
批处理文件的结构如下图所示:
@echo off
if %1 == "b1" (
command 1
command 2
command 3
....
) else (
command a
command b
command c
)
我调用它如下所示:
test.bat b1
如果我将 b1 作为参数传递给批处理文件,它将处理一系列命令,命令 1、命令 2、命令 3 等等。
同样,如果我想执行 else 部分中提到的一系列命令,我会传递另一个参数:
test.bat abc
由于传递给批处理文件的参数不等于 b1,它将开始执行批处理文件的 else 部分。这里我传递的参数(在本例中为 abc)是命令、命令 a、命令 b、命令 c 等作为参数所必需的。
这一切都很好。
但是,我面临的问题是,如果我想在两者之间终止批处理文件(通过按 Ctrl + C),它不会提示我选择:你想终止批处理操作吗?是/否
例如,假设批处理文件正在处理 else 部分中的一系列命令。目前,假设它正在执行命令 a。如果我按 Ctrl + C,那么它不会提示我取消操作,而是取消命令 a 的执行并自动继续执行命令 b。如果我再次按 Ctrl + C,它将取消命令 b 并继续执行命令 c 等等。
现在,另一方面,如果我编写批处理文件,如下所示:
@echo off
command a
command b
command c
我从命令行调用它:
test.bat abc
现在,当我在执行批处理文件时按 Ctrl + C 时,它会提示我按预期取消批处理操作。
看来,当我在批处理文件中添加条件语句时, Ctrl + C 的功能以某种方式进行了修改。
我该如何解决这个问题?
谢谢。