Powershell:NoNewLine的替代品?

时间:2018-04-12 14:56:57

标签: powershell hashtable newline

我有一个脚本工作,它使用哈希表来存储和比较值,然后将输出写入文本文件。以下是我的输出中使用和不使用NoNewLine时会发生什么的示例:

使用NoNewLine:

All servers are all on Version 19.1.5

没有NoNewLine:

All server are all on 
Version 19.1.5

所以,NoNewLine解决了这个问题,但我一直在使用Powershell 5.0的服务器上进行测试。当我在另一台服务器上测试它时,Powershell没有识别NoNewLine,因为它是在4.0版本上。不幸的是,在新版本的PS上获取所有服务器都不是一个选项,那么有一种简单的方法可以使旧版本的PS版本能够处理NoNewLine吗?我一直在谷歌上搜索一段时间,但没有找到任何好的替代品。我尝试了整个“n r”的事情,但无法让它发挥作用。这是我使用NoNewLine的代码:

if (@($TableVersion.Values | Group-Object).Count -eq 1) {
    if (@($TableHash.Values | Group-Object).Count -eq 1) {
        Write-Output "The servers are all on " $TableVersion.Serverapps01 | Out-File D:\Results$Timestamp.txt -NoNewline;
        }
    else {
        Write-Output "The servers are all on " $TableVersion.Serverapps01 " but there are differences in the build files." | Out-File D:\Results$Timestamp.txt -NoNewline;
    }
}
else {
    @(Write-Output "The server versions do not match: "
    $TableVersion.GetEnumerator() | Sort -Property Name | Format-Table -HideTableHeaders) | Out-File D:\Results$Timestamp.txt;
}

2 个答案:

答案 0 :(得分:4)

只需将一个字符串发送到Out-File

Write-Output "The servers are all on $($TableVersion.Serverapps01) but there are differences in the build files." |Out-File D:\Results$Timestamp.txt

答案 1 :(得分:2)

您也可以使用字符串和-f(格式)运算符:

"The servers are all on {0} but there are differences in the build files." -f $TableVersion.Serverapps01 | Out-File D:\Results$Timestamp.txt

Write-Output很好但不必要。