如何解决Powershell脚本,用于比较流中的文件哈希和已发布
早上好,
我是PowerShell脚本的新手。而且我不知道我在做什么错。
我试图编写一个.ps1脚本来比较流的哈希值。我使用了Microsoft documentation来寻求帮助,并将其修改为可运行的脚本,因此无需一遍又一遍地编写它。
$wc = [System.Net.WebClient]::new()
$pkgurl = Read-Host "Please enter Package Url: "
$publishedHash = Read-Host "Enter Published Hash: "
$FileHash = Get-FileHash -InputStream ($wc.OpenRead($pkgurl))
if ($FileHash.Hash -eq $publishedHash) {
Write-Host "File Hash is equal to published Hash."
}
else {
Write-Host "File Hash NOT equal to published Hash."
}
当我运行脚本并输入程序包URL和已发布的Hash时,该程序突然突然关闭。
请,有人知道吗?
解决方法
脚本结束,因为它无事可做。
您可以在末尾添加read-host
,以在关闭之前等待用户输入。 (它不会对输入执行任何操作,只会强制其保持打开状态,直到完成输入为止。)
或者,如果您想多次使用它而不关闭它,则可以创建一个循环:
$KeepOpen = $true
While($KeepOpen -eq $true){
$wc = [System.Net.WebClient]::new()
$pkgurl = Read-Host "Please enter Package Url: "
$publishedHash = Read-Host "Enter Published Hash: "
$FileHash = Get-FileHash -InputStream ($wc.OpenRead($pkgurl))
if ($FileHash.Hash -eq $publishedHash) {
Write-Host "File Hash is equal to published Hash."
}
else {
Write-Host "File Hash NOT equal to published Hash."
}
$user_input = Read-Host "Please enter Y to run again"
if($user_input -ne "Y"){
$KeepOpen = $false
}
}
这将使脚本保持打开状态,以便您查看结果,如果希望再次运行该脚本,请插入Y并按Enter键,您应该回到开始的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。