今天我遇到了同样的问题,但代码不同。此代码影响了 aspx、asp、htdocs、html、htm 和 js 文件。下面是我在 Powershell 中修复这些文件的代码。对于 JS 文件,您需要更改行:
$regex = New-Object System.Text.RegularExpressions.Regex "<!--68c8c7-->((.|\n)*)<!--/68c8c7-->"
至:
$regex = New-Object System.Text.RegularExpressions.Regex "/\*68c8c7\*((.|\n)*)68c8c7\*/"
和线
Get-ChildItem . -Recurse -Include *.aspx,*asp,*.html,*.htm | where-object {$_.lastwritetime –gt $DateToCompare} | %{Write-Host Examining file: $_.fullname; $_} | ForEach-Object { DoWork $_.Name $_.DirectoryName}
至:
Get-ChildItem . -Recurse -Include *.js | where-object {$_.lastwritetime –gt $DateToCompare} | %{Write-Host Examining file: $_.fullname; $_} | ForEach-Object { DoWork $_.Name $_.DirectoryName}
下面的代码(这个脚本将创建 Backup_* 文件,毕竟你可以删除这些文件):
function tryFixFile($filepath, $filepathBackup)
{
$infile = [string]::join([environment]::newline, (get-content -path $filepath))
$regex = New-Object System.Text.RegularExpressions.Regex "<!--68c8c7-->((.|\n)*)<!--/68c8c7-->"
if($regex.IsMatch($infile))
{
$intAnswer = $WScriptObject.popup("File needs to be change: " + $filepath + " do you want to continue?", 0,"Change File",4)
If ($intAnswer -eq 6)
{
Write-Host " Creating backup for file: " $filepath
Copy-Item $filepath $filepathBackup
$replace = $regex.Replace($infile,"")
$replace | out-file $filepath
} else
{
$a.popup("File " + $filepath + " won't be changed.")
}
}
}
function DoWork($filename, $directory)
{
$filepath = $directory + '\' + $filename
$filepathBackup = $directory + '\' + "Backup_" + $filename
$WScriptObject = new-object -comobject wscript.shell
tryFixFile $filepath $filepathBackup
}
$pathToCheck = Read-Host 'WARNING!! Path to check/change?'
if (Test-Path $pathToCheck)
{
Set-Location $pathToCheck
#files were affected no longer that 2 days ago, you can change this
$DateToCompare = (Get-date).AddDays(-2)
Get-ChildItem . -Recurse -Include *.aspx,*asp,*.html,*.htm | where-object {$_.lastwritetime –gt $DateToCompare} | %{Write-Host Examining file: $_.fullname; $_} | ForEach-Object { DoWork $_.Name $_.DirectoryName}
}else
{
write-host "Path doesn't exist"
}