我试了一下,先用WINDOWS兼容性设置CMD.exe强制兼容WIN98,但BREAK无效。
然后如下做两个批处理,这两个批处理互相CALL,不管按多少次CTRL+C,
只要你CTRL+C中断一个批处理,虽然当前这个批处理被中断了,但它是被CALL的,
所以又返回了调用它的那个批处理。
如果这两个批处理之间在CALL以前和CALL的时候都加上参数,
理论上就应该知道中间这一段批处理是不是被人为的中断了,
如果被人为的中断了,那么
例:
请输入: (如果这地方被中断了)
(代码区赋值) (那么在这里是不会被人工赋上值的,
所以,在这后面的CALL A.BAT 参数
是不会带过去的,所以只要那个被CALL的批处理发现无参数,
就一定是我CALL别人时它中断了我的批处理,然后就可以变向解决了。
(但,如果对方强行用鼠标关掉CMD的WINDOWS窗口,那没折)
我下面的试验仅仅是试验,并没带参数,理论上是否行不太清楚:)
C:\temp\t>copy con a.bat
@echo.
echo is A
echo.
set /p redtek=
call b.bat
^Z
已复制 1 个文件。
C:\temp\t>copy con b.bat
@echo off
echo.
echo is B
set /p redtekk=
call a.bat
^Z
已复制 1 个文件。
C:\temp\t>a
C:\temp\t>echo is A
is A
C:\temp\t>echo.
C:\temp\t>set /p redtek=
dddd
C:\temp\t>call b.bat
is B
dddd
is A
dddd
is B
dddd^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A
^C
is B
^C
is A