1

我想做的:为 Windows Powershell 设计一个命令,让用户输入他们想要校验和的文件的路径以及他们喜欢的校验和算法。然后将结果保存在与该文件同名的文件中,在同一目录中,但以校验和算法作为其扩展名。

示例:将 C:\path\to\file.pdf 写入命令,用户将找到包含 SHA-256 校验和作为文本的 C:\path\to\file.sha256。

到目前为止我所拥有的:

Set-Variable -Name "pfad" -Value "C:\path\to\file.pdf"; Set-Variable -Name "algorithmus" -Value SHA256; certutil -hashfile $pfad $algorithmus > $pfad + "." + $algorithmus

如果这行得通,它将返回 a file.pdf.SHA256which 会很好。但是,它会使用包含错误消息的同名文件覆盖原始文件。

不幸的是,某种 bash 脚本对我来说是不可行的。它必须是一个命令,用户将能够将其所需的值复制到命令的一个位置。

我已经研究了几个函数,比如 SplitPath 等,但我觉得应该有一种相当简单的方法来做我想做的事情。这是我第一次处理 Windows Powershell,所以我对自己的可能性一无所知。

4

1 回答 1

0

我认为这会做你想要的。
而不是设置变量,您可以只声明它们并将它们设置为等于Read-Host将获得用户输入的值。

然后,您可以将数据通过管道传输到格式列表中,然后传输到名为您想要的内容的 csv 文件中。

$filePath = Read-Host "Please enter your filepath (e.g. C:\path\to\documents)"
$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

获取 FileHash 文档

编辑:这将file.pdf.sha256在与原始文件相同的目录中创建。

于 2021-03-18T11:24:31.400 回答