6

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

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

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

netstat -aon | findstr ":1099"

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

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

4

1 回答 1

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
于 2009-05-12T09:43:36.990 回答