使用PowerShell替换字符串中包含双引号的字符串

时间:2017-06-27 23:41:44

标签: powershell

我正在尝试使用PowerShell在类似文件的整个目录中进行简单的查找和替换,但事实上我需要替换的文本包含双引号会导致我出现问题。

例如,文件的行如下:

"Enumeration Value": 9

我想让这一行看起来像这样:

"Enumeration Value": 13

在我的批处理文件中也执行其他任务,我有一个看起来像这样的powershell命令:

powershell -Command "(gc '!CURRENT_FILE!') - replace '"Enumeration Value": 9' , '"Enumeration Value": 13' | Set-Content '!CURRENT_FILE!'"

在上面的示例中,CURRENT_FILE将是我的批处理文件正在处理的当前文件。

任何人都可以帮助我解释为什么这不能替换包含双引号的行吗?我试过加倍双引号,逃避双引号,以及其他一些我现在无法记住的事情。

我在帖子中尝试了这个标记为副本的答案,但是没有用。

将我的powershell调用更改为看起来确实有效:

powershell -Command "(gc '!CURRENT_FILE!') - replace '"\"Enumeration Value\"": 9' , '"\"Enumeration Value\"": 13' | Set-Content '!CURRENT_FILE!'"

0 个答案:

没有答案