1
我試圖將散列函數應用於文件夾內的所有文件作爲某種版本控制。這個想法是創建一個測試文件,列出文件的名稱和生成的校驗和。挖網上我發現一些代碼,應該做的伎倆(理論上):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:\用戶\我\中,我正在運行腳本的文件夾。而文件c:\ users \ me \ aa.cab不存在,因此無法訪問。
我試過了所有我能想到但沒有運氣的東西。我使用Windows 7與Powershell 2.0,如果這有幫助的話。
這樣做的伎倆。非常感謝! – Variax