ちょっと先の未来クイズ第4問

コマンドプロンプトやPowerShellでは合計4TBのデータのハッシュ値を一度に取得するなどの大量のデータを一度に処理する事は可能なのでしょうか?

A 回答 (2件)

コマンドプロンプトの組み込み機能だけでは無理なので、ハッシュ値を求めるコマンド(certutil.exe)を起動します。

表示するだけで良いなら、
certutil -hashfile 対象ファイル名 ハッシュの種類
とか。ハッシュの種類は、MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512 のいずれか。
例: certutil -hashfile abcdefg.jpg sha256
変数にセットするなら、for /f 構文を使います。

PowerShellだとハッシュ値を求める機能が内蔵されているので、別コマンドを使わなくても組み込み機能だけで出来ます。結果の加工も楽。
Get-FileHash -Path 対象ファイル名 -Algorithm ハッシュの種類

どちらも、ファイルサイズは計算時間が長いか短いかだけで、大きくても問題ないです。
    • good
    • 1
この回答へのお礼

ありがとう

ご回答ありがとうございました

お礼日時:2024/11/01 23:42

可能ですが、時間かかる為中断しない様にお願いします。



# PowerShellスクリプト: HashFiles.ps1

# ハッシュを取得したいディレクトリを指定
$directoryPath = "C:\path\to\your\directory"
# 結果を保存するCSVファイルのパスを指定
$outputFile = "C:\path\to\output\hashes.csv"

# CSVファイルにヘッダーを書き込む
"FilePath,HashAlgorithm,Hash" | Out-File -FilePath $outputFile -Encoding UTF8

# ファイルのハッシュを取得してCSVに書き込み
Get-ChildItem -Path $directoryPath -Recurse -File | ForEach-Object {
# 各ファイルのハッシュ値を計算(SHA256を使用)
$hash = Get-FileHash -Path $_.FullName -Algorithm SHA256
# 結果をCSV形式で出力
"$($_.FullName),$($hash.Algorithm),$($hash.Hash)" | Out-File -FilePath $outputFile -Append -Encoding UTF8
}

Write-Output "ハッシュ値の取得が完了しました。結果は$outputFileに保存されています。"
    • good
    • 1
この回答へのお礼

ありがとう

ご回答ありがとうございました

お礼日時:2024/11/01 23:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A