我有一个脚本工作,该脚本使用哈希表存储和比较值,然后将输出写入文本文件。这是在我的输出中有和没有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;
}

最佳答案

只需将一个字符串发送到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

09-30 14:27