我在这里有一个非常简单但令人愤怒的PowerShell问题。我正在尝试从字符串中删除换行符。我有以下代码:
param(
[parameter(mandatory=$false)]$Dmn = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
)
function getPDC{
$Domain = $Dmn.Name.Split('.')[0]
$PDC = (nltest /dcname:$Domain).Replace("PDC for Domain ","").Replace($Domain, "").Replace(" is \\","").Replace("The command completed successfully","").Replace("`n","")
$PDC + "hodor"
}
如果能理解我的理解,应该返回
PDCVALUEhodor
但它会返回:
PDCVALUE
hodor
我在这里犯的愚蠢错误是什么?
我尝试将$ PDC转换为字符串,如下所示:
[String]$PDC = [String](nltest /dcname:$Domain).Replace("PDC for Domain ","").Replace($Domain, "").Replace(" is \\","").Replace("The command completed successfully","").Replace(" ", "")
换行符消失了(很奇怪!),给了我
PDCVALUE hodor
这更接近我想要的,但我似乎无法移除那个空间。我尝试在字符串上调用Replace(" ", "")
和Trim()
,这两个都无效。
答案 0 :(得分:5)
而不是.Replace()
尝试.TrimEnd()
$PDC.TrimEnd("`r?`n") + "hodor"
答案 1 :(得分:0)
好的,显然是替换了这行
$PDC+"hodor"
与
($PDC+"hodor").Replace(" ", "")
的工作。我不得不在整个字符串($ PDC +“hodor”)上使用Replace函数,而不仅仅是出于某种原因的$ PDC。此外,修剪功能似乎没有做任何事情。