我从互联网上获得了一个批处理文件:
@for /f "tokens=5 delims= " %%i in ('netstat -ano -p tcp ^| find "127.0.0.1"') do Taskkill /F /PID %%i
这会杀死Ultrasurf过程,但是,我想要做的就是让它检查同一个过程然后关闭(如果存在)。
我尝试了以下内容:
@for /f "tokens=5 delims= " %%i in ('netstat -ano -p tcp ^| find "127.0.0.1"') do shutdown /s
这将发出关闭进程是否正在运行的命令。我需要它只在存在时执行。任何帮助将不胜感激。
答案 0 :(得分:1)
您的批处理文件不会杀死Ultrasurf,它会杀死本地主机上具有打开的tcp端口的所有进程。
如果运行资源监视器,您将看到许多服务都具有用于RPC服务器的打开tcp端口。因此,修改后的脚本执行立即关闭,因为for命令找到至少1个匹配。
修改此question
的答案之一tasklist /FI "IMAGENAME eq ultrasurf.exe" 2>NUL | find /I /N "ultrasurf.exe">NUL
if "%ERRORLEVEL%"=="0" shutdown /s /f
警告:未经测试的代码