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

标签 windows batch-file dos port

我正在尝试编写一个批处理脚本,如果端口 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/

相关文章:

dos - MS-DOS 如何获取命令的输出作为变量

java - SpringBoot项目gradle build 'bootRepackage'任务失败,因为无法重命名jar

windows - 如何在没有ActiveX的情况下直接在网页上安装谷歌浏览器

c++ - 在用户机器上存储 key 的推荐方法

visual-studio - 修改文本文件时,如何强制构建过期?

windows - 等待命令完成

c++ - Windows::基础::日期时间

batch-file - 删除名称以命令提示符(批处理)开头的文件夹

windows - 如何在电脑开机时启动批处理文件

shell - 如何在 diff 查看器仍然打开的情况下让cleartool diff 返回到命令行?