Я пытаюсь применить хеш-функцию ко всем файлам внутри папки как своего рода контроль версий. Идея состоит в том, чтобы создать тестовый файл, в котором перечислены имя файла и сформированная контрольная сумма. Рытье онлайн я нашел код, который должен сделать трюк (в теории):Powershell не отправляет правильный путь для файла в качестве аргумента
$list = Get-ChildItem 'C:\users\public\documents\folder' -Filter *.cab
$sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
foreach ($file in $list) {
$return = "" | Select Name, Hash
$returnname = $file.Name
$returnhash = [System.BitConverter]::ToString($sha1.ComputeHash([System.IO.File]::ReadAllBytes($file.Name)))
$return = "$returnname,$returnhash"
Out-File -FilePath .\mylist.txt -Encoding Default -InputObject ($return) -Append
}
Когда я запускаю его, однако, я получаю сообщение об ошибке, потому что он пытается читать файлы из C: \ Users \ Me \, то где я запускаю скрипт. И файл c: \ users \ me \ aa.cab не существует и, следовательно, не может быть достигнут.
Я пробовал все, что мог придумать, но не повезло. Я использую Windows 7 с Powershell 2.0, если это помогает в любом случае.
Это сделало трюк. Большое спасибо! – Variax