0

我在 PowerShell 脚本中使用 StringBuilder.Replace 在输出到日志文件之前去除文本字段中的换行符。下面是我正在使用的示例......它在我们的开发环境中完美运行。但是,在实时环境中,根本没有删除换行符。有谁知道是什么导致它因环境而异?实时服务器上有更多内容,但由于实际系统与开发系统相同,因此所有文本字段本身都是相同的。

$log = "C:\mylogfile.csv"   
$newline = [System.Environment]::NewLine
$sb2 = New-Object System.Text.StringBuilder 
$sb2.Append("Text fields")
$sb2.Replace($newline,".")
$sb2.ToString() | Out-File $log -Append
4

1 回答 1

1

好的,我在这里发布后不久就找到了解决方案的草皮法则..!

以下对我有用。我尝试了 'r 和 'n 没有运气,但是通过将它们与 NewLine 一起进行,所有换行符现在都被删除了:

$log = "C:\mylogfile.csv"       
$newline = [System.Environment]::NewLine
$charsToStrip = "`r","`n", $newline
$sb2 = New-Object System.Text.StringBuilder 
$sb2.Append("Text fields")
foreach ($char in $charsToStrip)
{
  $sb2.Replace($char,".")
}
$sb2.ToString() | Out-File $log -Append
于 2013-08-30T14:57:15.207 回答