这是我的 powershell 脚本:
$Apache_port = Get-Content -Path C:\tmp\httpd.conf | Select-String -Pattern 'Listen'
echo $Apache_port
但我得到的结果如下:
# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to
#Listen 12.34.56.78:80
Listen 8020
但我只想8020
打印这一行,我该怎么办?
答案1
where-object
以下是使用、-match
、-notmatch
和 的PowerShell 方法split()
。
这将省略带有井号/磅号符号的行#
,在默认空格处进行拆分,并返回第二个索引值(即数字)。如“ Listen<space><PortNumber>
”中所示,其中“Listen”是第一个索引[0]
,端口号是您想要的第二个索引[1]
。
电源外壳
(Get-Content -Path C:\tmp\httpd.conf | Where-Object {$_ -match "Listen" -and $_ -notmatch "#"}).Split()[1];
输出
8020
支持资源
答案2
请尝试以下操作:
$Apache_port = Get-Content -Path C:\tmp\httpd.conf | Select-String -Pattern '8020'
$Apache_port = $Apache_port -Replace "Listen ",""
echo $Apache_port