gpt4 book ai didi

powershell - 将第一个参数传递给 cli

转载 作者:行者123 更新时间:2023-12-02 01:53:58 25 4
gpt4 key购买 nike

尝试编写一个简单的脚本,该脚本将使用传递给我的 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 的链接。

最佳答案

我猜您正在寻找“如何将参数传递给 .ps1 脚本”。

这是脚本 sha256sum.ps1 的示例:

param(
[parameter(mandatory)]
[validatescript({
Test-Path $_ -PathType Leaf
})]
[system.io.fileinfo]$File
)

(Get-FileHash $File -Algorithm SHA256).Hash

现在,如果我们要调用此脚本,例如:

PS \> .\sha256sum.ps1 .\test.html
1B24ED8C7929739D296DE3C5D6695CA40D8324FBF2F0E981CF03A8A6ED778C9C

注意:当前目录是脚本和html文件所在的目录,如果不是这种情况,则应使用绝对路径。


我会向您推荐official docs了解函数和 param(...) block 的概念。

关于powershell - 将第一个参数传递给 cli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69845295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com