如果正在使用端口,Windows批处理脚本将打印错误消息

时间:2009-05-12 09:34:24

标签: windows batch-file dos port

如果端口1099已在使用中,我正在尝试编写一个错误的批处理脚本。

不幸的是我必须在DOS批处理脚本中编写它(我无法安装任何东西)。

我知道我可以手动打印进程占用端口1099的PID:

netstat -aon | findstr ":1099"

但是我希望能够在批处理脚本中运行该命令,并在该命令有任何输出时退出脚本并显示错误消息。

我想在推送时我可以将输出重定向到一个临时文件并测试它的大小,但这看起来真的很糟糕......

1 个答案:

答案 0 :(得分:11)

 netstat -an | FINDSTR ":1099" | FINDSTR LISTENING && ECHO Port is in use && EXIT 1

只有在上一个命令成功的情况下(基于退出代码/ &&),您才可以在批处理脚本中使用ERRORLEVEL来运行命令。这允许您显示消息并仅在您要查找的字符串在netstat的输出中找到时退出。

此外,您希望明确查找LISTENING端口。

FINDSTR支持正则表达式,因此您还可以执行以下操作来缩短命令行:

netstat -an | findstr /RC:":1099 .*LISTENING" && ECHO Port is in use && EXIT 1