我正在运行以下powershell命令:
powershell -Command "(gc myfile1.json) -replace '1.7976931348623157E308', '""-Infinity""' | Out-File myFile.json"
powershell -Command "(gc myfile1.json) -replace '4.9E-324', '""-Infinity""' | Out-File myFile.json"
我在输出文件中获得了Infinity,但是我希望它被双引号引起来->“ Infinity”
我应该如何进行?我尝试使用以下转义字符:“”,但是我必须错过一些东西,因为它也不起作用。
非常感谢您的帮助。
答案 0 :(得分:2)
如果将powershell命令用双引号引起来,则:
-replace
正则表达式和两个替换项交替使用powershell -NoP -C "(gc myfile1.json) -replace '4.9E-324|1.7976931348623157E308', '\"-Infinity\"' | Out-File myFile.json"
或者,您可以省略外部双引号,但必须使用尖号对管道符号进行转义。
powershell -NoP -C (gc myfile1.json) -replace '4.9E-324^|1.7976931348623157E308', '"-Infinity"' ^|Out-File myFile.json
答案 1 :(得分:1)
这是因为它是在命令参数中作为字符串传递的字符串,所以您必须添加一个转义级别:
powershell -Command "(gc d:\test.txt) -replace 'x','\""y\""' | out-file D:\result.txt"
编辑:语法荧光笔不喜欢它,但是语法正确。