【发布时间】:2016-06-13 01:15:37
【问题描述】:
我有一个带有一些特殊字符$ 的文本文件,需要用双双引号替换。我正在使用一个 bat 文件,我在其中调用 powershell.exe 并编写替换命令。下面是命令:
powershell "gc C:\Temp\Test.csv| foreach-object {$_ -replace '$','""""""'}|sc C:\Temp\Test_Replace.csv"
我知道双引号会被双引号转义,因此“”“””相当于“”。但如上面的代码所示,我需要编写 6 个双引号才能获得等效的 2 个引号。我想不通找出原因。
有人可以说明我遗漏的观点吗?
【问题讨论】:
-
-replace使用正则表达式。转义$(这是正则表达式中的字符串结尾特殊字符):$_ -replace '\$','""""""' -
就个人而言,我将其称为
PowerShell.exe命令行解析器中的错误。序列""被它处理得很奇怪,所以我建议不要使用它,而是使用\"。
标签: powershell replace