如何替换powershell中不带';它前后没有空格
我们每3个月执行一次密码更改活动。我们有多个web.config文件,其中包含这些硬编码的密码 我们需要在每次更新时手动替换这些文件中的密码 我尝试使用powershell的replace命令检查它是否工作 但是字符串没有被替换,因为密码前后没有空格。写入这些密码的行类似于如何替换powershell中不带';它前后没有空格,powershell,powershell-2.0,powershell-3.0,powershell-4.0,Powershell,Powershell 2.0,Powershell 3.0,Powershell 4.0,我们每3个月执行一次密码更改活动。我们有多个web.config文件,其中包含这些硬编码的密码 我们需要在每次更新时手动替换这些文件中的密码 我尝试使用powershell的replace命令检查它是否工作 但是字符串没有被替换,因为密码前后没有空格。写入这些密码的行类似于 value="blah blah blah" password="Old@password!" 我尝试运行的命令是 ((Get-Content -path C:\web.config) -replace 'Old@pass
value="blah blah blah" password="Old@password!"
我尝试运行的命令是
((Get-Content -path C:\web.config) -replace 'Old@password!','New@Password!') | Set-Content -Path C:\web.config
我应该怎么做才能在我的web.config文件的下面一行结束呢
value="blah blah blah" password="New@Password!"
你为什么不把整条线换掉呢?这似乎更简单。。。[咧嘴笑]@Lee_Dailey-我不明白为什么它不起作用?这是有效的,是等效的,不是吗<代码>'Value=“blah blah blah”密码=”Old@password!“'-替换'Old@password!','New@Password!'代码>因为它显然无法足够频繁地重复:。PowerShell附带了一个适当的XML解析器。使用它。@LievenKeersmaekers-如果没有看到真实的示例,我无法告诉您代码失败的原因。但是,如果这一行只是一行文本,那么就很容易识别和替换整行,而不需要正则表达式。只需加载
Get Content
检查行首文本,然后用新行替换整行。除了Ansgars提示之外,请记住-replace
操作符(不是命令)是基于正则表达式的。如果旧密码包含任何被解释为RegEx^$()[]{}
的字符,则必须手动或使用-replace[RegEx]::escape('Old@password!'),'New@Password!'代码>