2014-12-18 2 views
0

Утро,Saving SHA1 алгоритм выводит в текстовый файл

Я получил этот Powershell скрипт, как следует:

$zips = Get-ChildItem 'C:\Users\X\Desktop\Powershell\Zip\' - Filter *.zip 
$sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider 

foreach ($file in $zips) { 
$return = "" | Select Name, Hash 

$return.name = $file.Name 
$return.hash = [System.BitConverter]::ToString($sha1.ComputeHash([System.IO.File]::ReadAllBytes($file.FullName))) 

Write-Output $return 

[System.IO.File}::WriteAllText("C:\Users\X\Desktop\Info\"+ $_.Name + ".txt", $_.FullName) 

} 

Read-Host -Prompt "Press Enter to Exit" 

Так он вычисляет хэш SHA1 для всех почтовых файлов в папке «зип ', Я пытаюсь заставить его сохранить хэши в текстовый файл в каталоге \ desktop \ info \ с отдельным текстовым файлом для каждого zip-файла.

Хеш рассчитывается без проблем, и он печатает его в окне powershell, но все, что он делает в данный момент, это создание уникального текстового файла без данных в нем и без имени.

Что мне не хватает? Я пробовал использовать информацию из другого скрипта, который делает что-то очень похожее, но я не могу получить тот же результат.

Любая помощь приветствуется.

+0

На этот раз, содержание вы пишете это полный filenamepath, а не '$ возврата .hash' value ... –

ответ

0

Попробуйте это:

[System.IO.File]::WriteAllText("C:\Users\X\Desktop\Info\"+$return.Name+".txt",$return.Hash) 
+0

Я знаю, что это не было частью исходного вопроса, но если бы я хотел, чтобы это было добавлено в существующие текстовые файлы с помощью sam имя, вы знаете, как это будет сделано? Я предполагаю, что он где-то там есть -Append? – user3586898

+0

Выполнено, AppendAllText, а не WriteAllText. Приветствую вас за помощь! :) – user3586898

0

Вместо того

[System.IO.File}::WriteAllText("C:\Users\X\Desktop\Info\"+ $_.Name + ".txt", $_.FullName) 

попробовать это:

$return.hash | Out-File "C:\Users\X\Desktop\Info\$($file.BaseName).txt" 
Смежные вопросы