Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#Powershell script.
#Don't forget unlock script executing by 
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension
function ConvertTo-Encoding ([string]$From, [string]$To) {
    Begin {
        $encFrom=[System.Text.Encoding]::GetEncoding($from)
        $encTo=[System.Text.Encoding]::GetEncoding($to)
    }
    Process {
        $bytes=$encTo.GetBytes($_)
        $bytes=[System.Text.Encoding]::Convert($encFrom,$encTo,$bytes)
        $encTo.GetString($bytes)
    }
}

$FileList=Get-ChildItem -Path "с:\*" -Include "*.cfg" -Recurse
foreach($el in $FileList) {
    $outFile=""
    $str=""
    $CurFile=Get-Content $el | ConvertTo-Encoding cp866 windows-1251
    $CurFile | % {
        if (($_ | Select-String -Pattern "OutputFilesDirectory","TmpFilesDirectory" -AllMatches) -eq $null) {
            $str=$_+"`n"
        } elseif ($_.ToString().SubString($_.ToString().Length-6,5) -ne $el.Name) {
            $str=$_.ToString().SubString(0,$_.ToString().Length-6)+$el.Name.TrimEnd(".cfg")+"\`n"
        } else {
            $str=$_+"`n"
        }
    $outFile+=$str
    }
    if ($CurFile -eq $outFile) {
        "файлы равны"
        Continue
    }
    if (Test-Path -Path $el) {
        Remove-Item -Path $el -Force
    }
    $file=New-Object System.IO.StreamWriter((New-Object System.IO.FileStream($el,[IO.FileMode]::OpenOrCreate)),[Text.Encoding]::GetEncoding("cp866"))
    $file.Write($outFile)
    $file.Close()
}
Ковыряет диск C:, проверяет все конфиги и перезаписывает

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 18:57, 19-07-2013 | #7