PowerShell拆分输入和替换/组合?

时间:2017-04-29 00:26:57

标签: powershell split

如果我运行的PowerShell脚本将输入分割为句点"我希望能够自动生成输出。"并添加" DC ="在已拆分的每个项目/对象中。

$DomainFQDN = "prod.mydomain.com"   # This varies depending on the input. It could be "prod.boston.us.mydomain.com" as the input.
$DistinguishedName = $DomainFQDN -split "\."
...
...
...I just don't know how to proceed

如何得到" DC = prod,DC = mydomain,DC = com"对于prod.mydomain.com作为输入或 DC = prod,DC = boston,DC = us,DC = mydomain,DC = com for prod.boston.us。 mydomain.com?

4 个答案:

答案 0 :(得分:1)

好吧,你可以使用带有$ DistinguishedName的foreach构造并像这样使用-join(如果你想直接输出连接的字符串):

$AddDC = foreach ($e in $DistinguishedName) { "DC=$e" }
Write-Host $($AddDC -join ",")

-join的作用类似于-split,您只需指定需要加入的字符。 其他方法是存储$ AddDC

$AddDC = foreach ($e in $DistinguishedName) { "DC=$e" }
$new_string = $AddDC -join ","
Write-Host $new_string

有关详细信息,请参阅此page

答案 1 :(得分:0)

$DomainFQDN = "prod.mydomain.com"

$DomainFQDN = $DomainFQDN.Split(".")
For ($i = 0; $i -lt $DomainFQDN.Count; $i++) {
    $DomainFQDN[$i] = "DC=" + $DomainFQDN[$i]
}

$DomainFQDN = $DomainFQDN -join ","
Write-Host $DomainFQDN

输出:

DC=prod,DC=mydomain,DC=com

我不确定为什么我无法获得-Split"。"操作员工作。它应该与.Split("。")的功能相同,但由于某种原因,它会产生不同的结果。但无论如何,这对你有用。

我觉得我应该提到一个真正的FQDN在每一行都不会是DC =。它看起来更像是:

DC=Com,DC=MyDomain,OU=Prod

答案 2 :(得分:0)

我通常在expandable中执行单个替换操作,以便从FQDN转换为域根的可分辨名称:

$DistinguishedName = "DC=$($DomainFQDN.TrimEnd('.') -replace '\.',',DC=')"

TrimEnd('.')调用从带有根的FQDN中删除任何点,并且替换操作会将每个剩余的点替换为,DC=

答案 3 :(得分:0)

如果我做对了,这就是需要的:

$fqdn='prod.boston.us.mydomain.com'
$dn="DC=$($fqdn.replace('.',',DC='))"
$dn