【问题标题】:Removing newline character in PowerShell在 PowerShell 中删除换行符
【发布时间】:2017-06-04 18:30:36
【问题描述】:

我有一个非常简单但令人愤怒的 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(),两者都不起作用。

【问题讨论】:

    标签: powershell newline


    【解决方案1】:

    代替.Replace() 试试.TrimEnd()

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

    【讨论】:

      【解决方案2】:

      好的,显然换行了

      $PDC+"hodor"
      

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

      工作。由于某种原因,我不得不对整个字符串($PDC + "hodor")使用 Replace 函数,而不仅仅是 $PDC。此外,Trim 功能似乎没有做任何事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        • 1970-01-01
        • 2023-01-18
        • 2020-07-28
        • 2011-04-28
        • 2016-02-26
        相关资源
        最近更新 更多