Board logo

标题: [已结]Ntsd运行后出错时怎样用批处理实现自动退出? [打印本页]

作者: qwertl     时间: 2008-10-21 09:16    标题: [已结]Ntsd运行后出错时怎样用批处理实现自动退出?

Ntsd运行后出错会有个窗口提示按回车退出,怎样可以用批处理实现自动退出呢?
@echo off
for /f "tokens=1" %%a in ('tlist^|find /i "edi_input.exe"') do set edipid=%%a
echo PID=%edipid%
[color=Red]ntsd -c q -p %edipid%[/color]  
net stop SQLSERVER
.......
上面的批处理在win2000 server下执行到ntsd -c q -p %edipid% 句出错的话提示要按回车退出,后面的批处理语句不会继续执行,怎样让ntsd窗口自动退出呢? [ Last edited by HAT on 2009-2-11 at 12:39 ]

作者: luxipeng     时间: 2009-2-9 15:12
我也想知道这个问题的答案,有时用ntsd结束一些不能结束的进程时(比如360安全卫士),ntsd就会跳出一个黑框框来,如果你不关闭这个黑框框,下面的代码就不能运行。 我想知道是否有办法让ntsd执行之后,不管有没有错误,都可以在运行相关命令后自动退出。 不知道谁能帮我?

作者: zhengqian529     时间: 2009-2-9 16:59
要是使用VBS,在vbs文件加上一句:On error Resume Next 然后执行你要执行的命令,这样的话,即使遇到错误它也会继续执行后面的程序。 至于批处理里面怎么处理呢??

作者: everest79     时间: 2009-2-9 20:02
这根本就不是个问题 你加start ntsd ***这样就行了

作者: luxipeng     时间: 2009-2-11 11:49
非常感谢Everest79的解答,我以前用echo.| ntsd 和echo y| ntsd 想结束掉ntsd的错误窗口都不可以,想不到用start “” ……就可以了。(刚学批处理,什么都不懂,还得多学习O(∩_∩)O哈哈~) 下面是我做杀进程的一个批处理的代码,杀伤力比较强大,可以杀winlogon.exe、csrss.exe等进程。
@echo off
tasklist
echo.
echo 请输入你要结束的进程名称
echo.
set /p proc=
for /f "tokens=1,2" %%i in ('tasklist ^|findstr /i %proc%') do (if /i "%%i"=="%proc%" start  /min "" ntsd -c q -p %%j )
taskkill /t /f /im ntsd.exe 1>nul 2>nul
tasklist
pause
[ Last edited by luxipeng on 2009-2-11 at 11:54 ]

作者: qwertl     时间: 2009-2-11 12:22
taskkill /t /f /im ntsd.exe 1>nul 2>nul
这才是中止ntsd窗口的办法