怎么样在批处理中结束命令但不结束这个批处理

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:53:53
我现在新建一个批处理文件,在其中调用了另一个批处理文件,我怎么样可以做到用CTRL+C结束第二个批处理文件中的命令来查看这个命令运行的结果,而不结束整个批处理?
举个例子:
::1.bat
@echo off
call 2.bat

::2.bat
ping 192.168.1.1 -t
ping -n 1000000

运行1.bat来调用2.bat 然后用CTRL+C来结束这个PING 查看结果,就是查看在这段时间内是否有丢包的现象!而不是CTRL+C后关闭CMD窗口!

不知道我说的明不明白!
这只是举一个例子,我也知道2.bat被中断了,所以我想问:

在正常CMD里输入ping 192.168.1.1 -t
按ctrl+c结束后不是有返回信息吗,
现在在2.bat里可不可以用其它的参数来设定一个动作(按下某个按键)让这个ping结束并
返回相应的信息!

我现在要的是这个信息也就是一个命令结束后产生的那个结果,不是中间过程!

一楼:谢谢你,不过我要的是结果,不是过程,能不能看看还有没有别的办法?
二楼:有一点这个意思,你说的这个怎么样来获得呢?
还是用这个PING命令做实验,我试了几次都没有获得它结束后的那个正常的返回信息!

楼主是不是说获得中断后的返回值?

----------------------------------
补充:这个估计很难实现了。在DOS时代部分程序是提供错误返回值的,比如copy等,但是有些是没有的。前提是这些程序必须正确执行才有返回值,例子:

@ECHO OFF
PING www.BAIDU.COM | FIND "Reply" 1>NUL 2>NUL
ECHO/%ERRORLEVEL%
PAUSE>NUL

似乎可以用DEBUG编程获取{具体如何有待楼主挖掘,本人还没入门}。

你ctrl+c都已经把把这个批处理进程给终止啦,就算你后面有再多的命令都不会去执行,pause也不例外。
就算&& 和 || 这些命令下的判断要个成功了,另一个没成功都不会执行下一句
你直接在2.bat 写成 ping 192.168.1.1 -t -n 10
这里的10可以自己任意定义ping多少次
或1.bat为
@echo off
call 2.bat>1.txt
start 1.txt
这个时候你会发现1.txt不会被打开,但是你用ctrl+c也终止不了这个窗口,而1.txt都为你记录了终止之前纪录。