如何用单条正则替换将PowerShell错误StackTrace输出为单行
正确实现方案
PowerShell的正则替换规则和JavaScript类语言的语法不同,不需要用/包裹正则表达式,也不需要手动加g全局匹配标记,PowerShell内置的-replace运算符默认执行全局匹配,直接用以下单次替换的写法即可:
Add-Content -Value ($error[0].StackTrace -replace '[\r\n]', '') -LiteralPath "C:\Temp\delete5.txt"
原写法失效原因
你尝试的/n|r/g是JavaScript等语言的正则书写格式,在PowerShell中会被识别为普通的字符串匹配模式,自然无法匹配到换行、回车符。
其他可选实现
如果偏好调用.NET静态方法实现,也可以用如下写法:
Add-Content -Value ([Regex]::Replace($error[0].StackTrace, '[\r\n]', '')) -LiteralPath "C:\Temp\delete5.txt"
内容的提问来源于stack exchange,提问作者Steve can help
相关产品推荐
相关产品推荐

