Powershell .替换正则表达式

cst*_*ord 3 powershell replace

用于替换的正则表达式让我大吃一惊。我正在尝试寻找:

值=“COM8”/>

在文本文件中并将“COM8”替换为另一个 com 端口(即“COM9”、“COM13”等)。

(Get-Content 'C:\Path\File.config').Replace('/".*?"', '"COM99"') | Set-Content 'C:\Path\File.config'
Run Code Online (Sandbox Code Playgroud)

预先感谢您提供的任何帮助。

Ans*_*ers 7

Get-Content产生一个字符串列表。通过成员枚举Replace()在每个字符串上调用。意思是,您调用的是方法,而不是方法。前者仅进行正常的字符串替换。String.Replace()Regex.Replace()

请改用-replace运算符:

(Get-Content 'C:\Path\File.config') -replace '=".*?"', '="COM99"' |
    Set-Content 'C:\Path\File.config'
Run Code Online (Sandbox Code Playgroud)