我寫了一個運行一系列命令的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等等。
同樣,如果我想執行這一系列的其他部分中提到的命令,我傳給另一種說法:
test.bat abc
由於傳遞到批處理文件中的說法是不等於B1,它會啓動執行批處理文件的else部分。在這裏,我傳遞的參數(在本例中爲abc)是命令,命令a,命令b,命令c等作爲參數所需的。
這一切都很好。
但是,我面臨的問題是,如果我想要終止其間的批處理文件(通過按Ctrl + C),它不會提示我使用以下選項:是否要終止批操作? Y/N
例如,讓我們說,批處理文件正在處理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的功能。
我該如何解決這個問題?
謝謝。
單擊關閉窗口圖標而不是按下控件C.或者從'CMD /?'中讀取幫助以查看是否可以更改Control C/Break處理。有可能使用'start'「/ b/w command1'工作。 – foxidrive