Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Command line 解析Windows命令行输出以获取PID_Command Line_Window_Command_Pid_Netstat - Fatal编程技术网

Command line 解析Windows命令行输出以获取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命令时输出的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"
    ') 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