删除PowerShell中的换行符

时间:2014-08-07 15:24:11

标签: powershell newline

我在这里有一个非常简单但令人愤怒的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(),这两个都无效。

2 个答案:

答案 0 :(得分:5)

而不是.Replace()尝试.TrimEnd()

$PDC.TrimEnd("`r?`n") + "hodor"

答案 1 :(得分:0)

好的,显然是替换了这行

$PDC+"hodor"

($PDC+"hodor").Replace(" ", "")

的工作。我不得不在整个字符串($ PDC +“hodor”)上使用Replace函数,而不仅仅是出于某种原因的$ PDC。此外,修剪功能似乎没有做任何事情。