Powershell 替换命令不删除换行符

Powershell replace command not removing newline

我有这样打印出来的文本:

mdbAppText_Arr: [0]: The  cover is open. {goes to next line here}
Please close the cover. and [1] Backprinter cover open 
46

我尝试在打开后去掉换行符,但它仍然存在。有什么更好的方法或解决我正在做的事情的想法吗?我需要去掉换行符,因为它将转到一个 csv 文件,并弄乱格式(转到那里的换行符)。

这是我的代码:

$mdbAppText_Arr = $mdbAppText.Split("|")                        
$mdbAppText_Arr[0].replace("`r",";").replace("`n",";").replace("`t",";").replace("&",";") 
#replace newline/carriage return/tab with semicolon
if($alarmIdDef -eq "12-7")
{
     Write-Host "mdbAppText_Arr: [0]: $($mdbAppText_Arr[0]) and [1] $($mdbAppText_Arr[1]) "
     [byte] $mdbAppText_Arr[0][31]
}

我一直在看:

replace

replace - 这个在 asci table 中有一个 link 参考查找,但我不清楚 table/link 中的字节等效项是哪一列.

我正在使用 PowerShell 5.1。

-replace 是一个 regex 运算符,因此您需要提供一个有效的正则表达式模式作为右侧操作数。

您可以用描述子字符串的模式替换大多数换行序列:

  • 一个可选的回车符return(正则表达式中的\r?),然后是
  • 一个(非可选)换行符(正则表达式中的\n):
$mdbAppText_Arr = $mdbAppText_Arr -replace '\r?\n'