用powershell写一个校验文件MD5, sha1, sha256, sha512 的脚本, 要求从控制台输入文件路径, 去除路径的引号, 将结果输出到所在文件夹的 "hash-{源文件名}.txt"文件, 内容分大小写各保存一份
时间: 2024-12-19 18:20:08 浏览: 6
可以使用PowerShell编写一个简单的脚本来实现这个需求。首先,创建一个名为`checkHash.ps1`的脚本,内容如下:
```powershell
# 定义函数来获取文件的哈希值
function Get-FileHash([string]$FilePath) {
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[ValidateScript({Test-Path $_ -PathType Leaf})]
[String]$FilePath
)
$hashProviders = @("SHA256", "SHA512", "SHA1", "MD5")
foreach ($provider in $hashProviders) {
$hashResult = Get-FileHash -Algorithm $provider -Path $FilePath
New-Item -ItemType File -Path "$($PSScriptRoot)\hash-${(Split-Path -Leaf $FilePath).tolower()}.${provider}.txt" -Value $hashResult.HASH -Force | Out-Null
}
}
# 获取用户输入的文件路径并去除引号
$FilePath = Read-Host "请输入文件路径"
# 检查路径是否有效,并计算哈希值
if (Test-Path $FilePath) {
$FilePathNoQuotes = $FilePath.Trim('"')
Get-FileHash -FilePath $FilePathNoQuotes
Write-Host "哈希值已成功写入对应文件."
} else {
Write-Error "无效的文件路径!"
}
```
运行此脚本时,它会提示用户输入文件路径,然后计算指定文件的MD5、SHA1、SHA256和SHA512哈希值,并将结果分别存储到同目录下的文本文件中,文件名格式为`hash-<源文件名>.<哈希算法>.txt`。
阅读全文