簡體   English   中英

使用PowerShell從具有多個條目的字符串創建Web綁定

[英]Creating Web Bindings from a string with multiple entries using PowerShell

我是PowerShell的新手,已經面臨巨大挑戰。 目標是讀取一個csv文件。 文件的每一行都是帶有綁定參數的字符串,例如:

“網站1”,“ 116.167.74.172:443:www.xyz.com
116.167.74.174:443:www.xyz.com”

“ Website2”,“:80:www.xyz.com 116.167.74.172:80:”

“網站3”,“ 116.167.75.155:443:116.167.75.163:443:”

“ Website4”,“:80:”

使用的命令是:

New-WebBinding -Name "Default Web Site" -IPAddress "*" -Port 80 -HostHeader TestSite

問題是:即使我沒有指定所有3個參數,如何讀取一個字符串並將其分成3個參數: IPPortHostHeader

您可以將正則表達式與命名捕獲組一起使用,以使其更容易。 讓我建議您,如果有IP地址,請始終將端口放在IP地址的右側。 然后,假設文件的給定行當前位於$ strLine中,則下面的操作將滿足您的要求。

$pattern = '"[^"]+","(?<ip_address>(?:\d{1,3}\.){3}\d{1,3})?:?(?<port>\d{1,5})?:?(?<hostheader>.*)?'  
$strLine -match $pattern  
$ipaddress = if ($matches.ContainsKey('ip_address')) { $matches['ip_address'] } else { "*" }  
$port = if ($matches.ContainsKey('port')) { $matches['port'] } else { "80" }  
$hostheader = if ($matches.ContainsKey('hostheader')) { $matches['hostheader'] } else { "TestSite" }  

New-WebBinding -Name "Default Web Site" -IPAddress $ipaddress -Port $port -HostHeader $hostheader 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM