我想用另外 4 个字符串替换 4 个字符串并将它们写入文件。
$file = 'C:\Defender.psd1'
(Get-Content $file) | ForEach-Object {
$_.replace("'MSFT_MpSignature.cdxml',", "'MSFT_MpSignature.cdxml')")
$_.replace("'MSFT_MpWDOScan.cdxml')", "")
$_.replace("'Remove-MpThreat',", "'Remove-MpThreat')")
$_.replace("'Start-MpWDOScan')", "") `
} | Out-File $file
Run Code Online (Sandbox Code Playgroud)
但文件中的每个字符串都被重复了 4 次。脚本将用于 PowerShell 4 和 5.1。
那是因为您将当前的 foreach 对象放入管道四次。相反,执行一次并多次调用替换:
$file = 'C:\Defender.psd1'
(Get-Content $file) | ForEach-Object {
$_.replace("'MSFT_MpSignature.cdxml',", "'MSFT_MpSignature.cdxml')").replace("'MSFT_MpWDOScan.cdxml')", "").replace("'Remove-MpThreat',", "'Remove-MpThreat')").replace("'Start-MpWDOScan')", "") `
} | Out-File $file
Run Code Online (Sandbox Code Playgroud)
这是一个更具可读性的版本:
$file = 'C:\Defender.psd1'
(Get-Content $file) | ForEach-Object {
$_.replace("'MSFT_MpSignature.cdxml',", "'MSFT_MpSignature.cdxml')").
replace("'MSFT_MpWDOScan.cdxml')", "").
replace("'Remove-MpThreat',", "'Remove-MpThreat')").
replace("'Start-MpWDOScan')", "")
} | Out-File $file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10732 次 |
| 最近记录: |