Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于打印错误消息(如果端口正在使用)的Windows批处理脚本_Windows_Batch File_Dos_Port - Fatal编程技术网

用于打印错误消息(如果端口正在使用)的Windows批处理脚本

用于打印错误消息(如果端口正在使用)的Windows批处理脚本,windows,batch-file,dos,port,Windows,Batch File,Dos,Port,我正在尝试编写一个批处理脚本,如果端口1099已经在使用中,该脚本将出错 不幸的是,我必须在DOS批处理脚本中编写它(我无法安装任何东西) 我知道我可以手动打印进程占用端口1099的PID: netstat -aon | findstr ":1099" 但我希望能够在批处理脚本中运行该命令,并在该命令有任何输出时退出脚本并显示错误消息 我想在推送时,我可以将输出重定向到一个临时文件,并测试它的大小,但这似乎真的很难 netstat -an | FINDSTR ":1099" | FINDST

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

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

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

netstat -aon | findstr ":1099"
但我希望能够在批处理脚本中运行该命令,并在该命令有任何输出时退出脚本并显示错误消息

我想在推送时,我可以将输出重定向到一个临时文件,并测试它的大小,但这似乎真的很难

 netstat -an | FINDSTR ":1099" | FINDSTR LISTENING && ECHO Port is in use && EXIT 1
仅当上一个命令成功(基于其退出代码/
ERRORLEVEL
)时,才能在批处理脚本中使用
&&
运行命令。这允许您仅在netstat的输出中找到要查找的字符串时显示消息并退出

此外,您还需要显式地查找
侦听
端口

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

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

哇,谢谢。我刚刚测试过,它工作得很好。您还注意到“o”开关是冗余的,额外的;)