#powershell #certutil
Вопрос:
Что я хочу сделать: разработайте команду для Windows Powershell, которая позволит пользователю ввести путь к файлу, контрольную сумму которого он хочет получить, а также предпочтительный алгоритм контрольной суммы. Затем результат должен быть сохранен в файле с тем же именем, что и этот файл, в том же каталоге, но с алгоритмом контрольной суммы в качестве его расширения.
Пример: C:pathtofile.pdf записывается в команду, и пользователь найдет C:pathtofile.sha256 который содержит контрольную сумму SHA-256 в виде текста.
Что у меня есть до сих пор:
Set-Variable -Name "pfad" -Value "C:pathtofile.pdf"; Set-Variable -Name "algorithmus" -Value SHA256; certutil -hashfile $pfad $algorithmus > $pfad "." $algorithmus
Если бы это сработало, он вернул бы a file.pdf.SHA256
, что было бы прекрасно. Однако он перезаписывает исходный файл файлом с тем же именем, содержащим сообщение об ошибке.
К сожалению, какой-то сценарий bash для меня нежизнеспособен. Это должна быть одна команда, которую пользователи смогут скопировать со своими желаемыми значениями в одно место команды.
Я изучил несколько функций, таких как SplitPath и т. Д., Но я чувствую, что должен быть довольно простой способ делать то, что я хочу. Это мой первый опыт работы с Windows Powershell, поэтому я очень мало знаю о своих возможностях.
Ответ №1:
Я думаю, это сделает то, что вы хотите.
Вместо того, чтобы задавать переменные, вы можете просто объявить их и установить их равными Read-Host
, что приведет к вводу данных пользователем.
Затем вы можете просто передать данные в список форматов, а затем в файл csv с именем, которое вы хотели.
$filePath = Read-Host "Please enter your filepath (e.g. C:pathtodocuments)"
$fileName = Read-Host "Please enter your filename (e.g. file.pdf)"
$algorithmus = Read-Host "Please enter your Algorithm format (e.g. SHA256, SHA1, MD5)"
Get-FileHash -Path "$filePath$fileName" -Algorithm "$algorithmus" | Export-csv "$filePath$fileName.$algorithmus" -NoTypeInformation
Изменить: Это создаст файл file.pdf.sha256
в том же каталоге, что и исходный файл.
Комментарии:
1.
Format-List
просто выходы на консоль.Export-csv
предназначен для вывода объектов в виде структурированных данных. Оператору просто нужно.Hash
, чтобы значение было записано в этом файле «алгоритмус»..