【发布时间】:2021-11-05 17:26:15
【问题描述】:
尝试编写一个简单的脚本,该脚本将使用传递给我的 ps1 脚本的文件名返回文件的 SHA256 签名:
脚本名称是sha256sum.ps1。
第一个参数可以是任何文件,例如:
sha256sum.ps1 dummy.exe
我在sha256sum.ps1 里面试过这些:
Get-FileHash -algo SHA256 %1
Get-FileHash -algo SHA256 $1
Get-FileHash -algo SHA256 $args[1]
但它们都不起作用。
有简单的方法吗?
编辑:感谢你们的帮助,这是我的脚本的最终版本:)
#!/usr/bin/env pwsh
param( $firstArg )
function calcSignature( $filename ) {
$scriptName = Split-Path -Leaf $PSCommandPath
switch( $scriptName ) {
"md5sum.ps1" { $algo = "MD5"; Break }
"sha1sum.ps1" { $algo = "SHA1"; Break }
"sha256sum.ps1" { $algo = "SHA256"; Break }
"sha384sum.ps1" { $algo = "SHA384"; Break }
"sha512sum.ps1" { $algo = "SHA512"; Break }
}
(Get-FileHash -algo $algo $filename).Hash + " " + $filename
}
calcSignature( $firstArg )
现在我只有一个脚本,其他的都是指向sha256sum.ps1的链接。
【问题讨论】:
标签: powershell arguments command-line-interface