Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


Пробуйте:
читать дальше »
Код: Выделить весь код
function GetMD5Hash([System.String]$sFile) {
    $oHashAlgorithm = [Security.Cryptography.HashAlgorithm]::Create("MD5")

    $oStreamReader = ([System.IO.StreamReader]$sFile).BaseStream
    
    -join ($oHashAlgorithm.ComputeHash($oStreamReader) | ForEach-Object -Process { "{0:x2}" -f $_ })
    $oStreamReader.Close()
}

$sRootPath       = "E:\Песочница\0328"
$sMD5ListPath    = "E:\Песочница\0336\MD5 List.txt"
$sExcludeFiles   = "E:\Песочница\0336\ExcludeFiles.txt"
$sExcludeFolders = "E:\Песочница\0336\ExcludeFolders.txt"


$cExcludeFiles   = @(Get-Content -Path $sExcludeFiles   -Encoding UTF8)
$cExcludeFolders = @(Get-Content -Path $sExcludeFolders -Encoding UTF8)


$cList = Get-ChildItem -Path $sRootPath -Recurse -Force |`
    Where-Object -FilterScript { -not $_.PSIsContainer -and $cExcludeFiles -notcontains $_.Name }
    
foreach($elem in $cExcludeFolders) {
    $cList = $cList | Where-Object -FilterScript { -not $_.FullName.StartsWith("$sRootPath\$elem") }
}

"; Generated on $(Get-Date)", "; Total files: $($cList.Length)", ( $cList | ForEach-Object -Process {
    "$(GetMD5Hash $_.FullName) $($_.FullName.Substring($sRootPath.Length + 1))"
} ) | Out-File -FilePath $sMD5ListPath -Encoding UTF8

Цитата DjBoBo:
Касаемо же путей, я просто подумал если в скрипте указывается жёстко рабочая папка, то наверное при написании папок-исключений необходимо отталкиваться относительно её, а это значит пути будут относительными. »
Да. И без замыкающего обратного слэша (т.е. «Exclude Folder 01», «Exclude Folder 02», «Exclude Folder 03\Folder4\Folder5» и т.п.).
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:02, 20-12-2013 | #17