【问题标题】:How can I parse the top line of output of a previous command as input to another command?如何将前一个命令的第一行输出解析为另一个命令的输入?
【发布时间】:2018-12-02 17:44:54
【问题描述】:

在 bash 中,我会为此使用 awk 和 xargs,但我不确定如何在 windows 命令行上执行此操作。

基本上我正在尝试终止侦听端口 3000 的进程。我目前正在这样做:

netstat -ano | findstr:3000
taskkill /PID <process id found from previous command> /F

有没有办法自动解析前面的命令以将它们链接在一行中,这样我就不必继续手动输入最新的 PID?或者如果有人知道更好的方法,那也很感激。

【问题讨论】:

  • For /f 解析命令输出。 | 将一个程序的所有输出传递到另一个程序。 For /f "tokens=4" %A in ('netstat -ano ^| Findstr /c:1900') do echo %A。见stackoverflow.com/questions/41030190/command-to-run-a-bat-file/…
  • 多次终止一个程序并没有什么坏处。但是通过利用正常的变量扩展 - (For /f "tokens=4" %A in ('netstat -ano ^| Findstr /c:1900') do @set myvar=%A) &amp; Echo %MyVar%

标签: windows batch-file command-line


【解决方案1】:

您需要使用for 循环来执行此操作,如下所示:

for /f "tokens=5" %A in ('netstat -ano ^| findstr /c:3000 ^| findstr /c:LISTENING') do taskkill /PID %A /F

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多