Command line 解析Windows命令行输出以获取PID
我希望仅收集运行此netstat命令时输出的PID值:Command line 解析Windows命令行输出以获取PID,command-line,window,command,pid,netstat,Command Line,Window,Command,Pid,Netstat,我希望仅收集运行此netstat命令时输出的PID值: netstat -a -o -n -p tcp | findstr -i "CLOSE_WAIT" 我的意图是使用PIDs并创建一个脚本,该脚本将运行taskkill/PID pidfoundhere,以删除任何处于关闭等待状态的套接字 @echo off for /f "tokens=5" %%a in (' netstat -noa -p tcp ^| find /i "CLOSE_WAIT" ') d
netstat -a -o -n -p tcp | findstr -i "CLOSE_WAIT"
我的意图是使用PIDs并创建一个脚本,该脚本将运行taskkill/PID pidfoundhere
,以删除任何处于关闭等待状态的套接字
@echo off
for /f "tokens=5" %%a in ('
netstat -noa -p tcp ^| find /i "CLOSE_WAIT"
') do if not "%%a"=="0" echo taskkill /pid %%a
使用for
命令以空格作为分隔符拆分行,获取行中的第5个标记,如果有PID,则终止进程
taskkill
命令仅回显到控制台。如果输出正确,请删除echo
命令我对其进行了一些修改,使其更加具体,但我还有一个问题。有没有关于如何在Java中执行此命令的线索?我在运行它时遇到了一些问题:String命令=“@echo off for/f\”tokens=5\”%a in('netstat-noa-p tcp^ find/I\“CLOSE\u WAIT\”^ find/I\“+ip+”:443\”)如果不执行,则执行“%a\”==“0\”echo taskkill/pid%%a”;Process runCommand=Runtime.getRuntime().exec(命令);当前出现错误:无法运行程序“@echo”:CreateProcess error=2,系统找不到指定的文件。因此,尝试将字符串[]传递给exec()方法,并出现无法运行程序错误。@user3459799,抱歉,java不是我的领域,但代码本来是要在批处理文件中执行的。如果您想从java运行它,而不是使用批处理文件,则需要使用cmd/c“命令”
,因为cmd
是谁知道如何执行它,请删除@echo off
,将所有命令放在一行中,并替换所有%%a
(百分比在批处理文件中转义)对于命令行版本,使用%a
。