我正在尝试使用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!'"