Powershell集合内容正在复制.ini文件中的行

Powershell集合内容正在复制.ini文件中的行,powershell,ini,Powershell,Ini,第一次发帖的时候,对我放松点 我正在尝试使用Powershell从INI文件获取内容。特别是,我需要更改文件中的两行。它可以运行,但不是仅仅替换这两行,而是复制所有内容。它也不会替换我试图告诉它要替换的行,而是添加了我的新行,同时保留了原来的行 $FilePath = "C:\Users\folder\*.ini" (Get-Content $FilePath) | ForEach-Object { $_ -replace "MailBell=0","MailBell=1"

第一次发帖的时候,对我放松点

我正在尝试使用Powershell从INI文件获取内容。特别是,我需要更改文件中的两行。它可以运行,但不是仅仅替换这两行,而是复制所有内容。它也不会替换我试图告诉它要替换的行,而是添加了我的新行,同时保留了原来的行

$FilePath = "C:\Users\folder\*.ini"

(Get-Content $FilePath) |
ForEach-Object { 
    $_ -replace "MailBell=0","MailBell=1"
    $_ -replace "MailWindow=0","MailWindow=1"
    } |
Set-Content $FilePath

下面是代码。非常感谢您的帮助

本文提供了一些很好的技巧,可以满足您的需要:您正在运行两次替换。将这两个
-replace
放在同一行上,应该可以:
$\uu-replace'etc','etc1'-replace'etc2','etc3'
虽然您没有使用regex,但我会使用字符串replace方法:
$\uu.replace('MailBell=0','MailBell=1').replace('MailWindow=0','MailWindow=1'
@TheIncorrigible1谢谢。现在好一点了;但是,它不是按顺序复制每一行,而是将整个文本块复制两次。换句话说,ini文件的所有内容都在原始内容下面输入两次…如果有意义的话。使用
-Raw
在您的
获取内容
调用中,只需附加我上面评论中的
.Replace()
链,而不是
ForEach对象