当我们遇到想要将某个文件夹及其子文件夹下的文件内容按规矩进行批量替换时,挨个打开文件进行替换会很浪费时间,于是写了这个powershell脚本。
1、首先创建一个XXX.ps1的文件并用记事本打开。
2、将以下代码复制到创建的文件中。
$folderPath = "E:" #绝对路径下
# $folderPath = Get-ChildItem -File #当前路径下
function Replace-InFile($filePath)
{
$content = Get-Content $filePath -Raw
#需要替换的字符串
$content = $content -creplace 'AAAA', 'BBBB'
Set-Content -Path $filePath -Value $content
}
function Process-Folder($folderPath)
{
$files = Get-ChildItem -Path $folderPath -Recurse -File
foreach ($file in $files)
{
Replace-InFile $file.FullName
Write-Host "ok: $($file.Name)"
}
}
Process-Folder $folderPath
3、修改 $folderPath = "绝对路径" 这儿的绝对路径就是需要进行批量的母文件夹。
4、如果想要只替换当前文件夹下的文件,可以使用第二行命令并将第一行注释掉 。
5、$content = $content -creplace 'AAAA', 'BBBB',这句是将AAAA替换成BBBB,当然也可以在下面增加其他的替换规则。
6、脚本执行完毕后会将替换成功的文件名打印到终端。