2
解决此问题时相当接近。批处理脚本查找Apache Tomcat正在运行的端口
SET settings=D:\tomcat\conf\server.xml
FOR /F "eol=p tokens=1-2* delims==" %%A IN ('TYPE %settings% 2^> NUL ^| FINDSTR.exe /L /C:"\<Connector port\="') DO echo %%B
pause
的Apache Tomcat通常运行在我们的测试/生产/ QA /环境80端口,但是我们是在8080端口上,并希望解析出端口是100%准确的一对夫妇的实例。
下面是结果:
D:\WORK\Scripts\test>echo "80" protocol
"80" protocol
D:\WORK\Scripts\test>echo "8443" protocol
"8443" protocol
D:\WORK\Scripts\test>echo "8009" protocol
"8009" protocol
望着server.xml中,我们有(第一个是正确的):
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
以及(不得不删除的意见发布) - 和被注释掉把 “关”:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
和:
在端口8009
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
,并定义一个AJP 1.3连接器..下面是完成代码来显示端口号:
SET settings=D:\tomcat\conf\server.xml
FOR /F "eol=p tokens=1-2* delims==" %%A IN ('TYPE %settings% 2^> NUL ^| FINDSTR.exe /L /C:"\<Connector port\="') DO (
SET PORT=%%B
SET PORT=%PORT:" protocol=%
SET PORT=%PORT:"=%
goto :break
)
:break
pause
谢谢!
打破的循环,这样总是第一个是正确的? – npocmaka 2014-12-03 17:30:11