我想做的是:为Windows Powershell设计一个命令,允许用户输入他们想要的校验和的文件的路径以及他们首选的校验和算法。然后,结果应保存在与该文件同名的文件中,位于同一目录中,但扩展名为校验和算法。
示例:C:\path\to\file.pdf 写入命令,用户将找到包含 SHA-256 校验和作为文本的 C:\path\to\file.sha256。
到目前为止,我拥有的:
Set-Variable -Name "pfad" -Value "C:pathtofile.pdf"; Set-Variable -Name "algorithmus" -Value SHA256; certutil -hashfile $pfad $algorithmus > $pfad + "." + $algorithmus
如果这有效,它将返回一个file.pdf.SHA256
这将很好。但是,它会用包含错误消息的同名文件覆盖原始文件。
不幸的是,某种 bash 脚本对我来说是不可行的。它必须是一个命令,用户将能够将其所需的值复制到命令的一个位置。
我已经研究了几个功能,如 SplitPath 等,但我觉得应该有一种相当简单的方法来做我想要的事情。这是我第一次处理Windows Powershell,所以我对我的可能性非常无知。
我认为这将做你想要的.
而不是设置变量,你可以只声明它们并将它们设置为等于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
。