今日、私は同じ問題を抱えていましたが、コードが異なります。このコードは、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"
}