我正在尝试编写一个批处理脚本,如果端口 1099 已被使用,该脚本会出错。
不幸的是,我必须在 DOS 批处理脚本中编写它(我无法安装任何东西)。
我知道我可以手动打印进程占用端口 1099 的 PID:
netstat -aon | findstr ":1099"
但我希望能够在批处理脚本中运行该命令,并在该命令有任何输出时退出脚本并显示错误消息。
我想我可以一键将输出重定向到一个临时文件并测试它的大小,但这看起来真的很老套...
最佳答案
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
关于如果端口正在使用,Windows 批处理脚本将打印错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/851962/