繁体   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