Crcチェックサムクロスプラットフォームを計算する方法を探しています。
cksum
はLinux、AIX、HP-UX Itanium、Solarisで動作します。Windowsでもcksum
と同等のコマンドがありますか?
%cksum run.sh
1491301976 652 run.sh
注:サードパーティツールなし
Windows(コマンドプロンプト)では、CertUtilを使用できます。構文は次のとおりです。
CertUtil [Options] -hashfile InFile [HashAlgorithm]
cmdの構文説明タイプの場合:
CertUtil -hashfile -?
例:
CertUtil -hashfile C:\myFile.txt MD5
デフォルトは、MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512をサポートするSHA1です。残念ながら、UnixシェルのようなCRC32はありません。
さらに詳しく知りたい場合はこちらのリンクをご覧ください https://technet.Microsoft.com/en-us/library/cc732443.aspx#BKMK_men
MSからのチェックサム用のサポートされていないツールがあるように見えます。機能には軽微ですが、あなたが求めていることをしているように見えます。 2012年8月に公開されました。「Microsoft File Checksum Integrity Verifier」と呼ばれています。
迷惑な非チェックサム行を回避するには:CertUtil -v -hashfile "your_file" SHA1 | FIND/V "CertUtil"これは行のみを表示します[〜#〜] not [〜#〜] continging CertUtil
@Cassianと@Hllitecの回答と https://stackoverflow.com/a/42706309/1001717 の回答を組み合わせて、ここで私のソリューション、チェックサム値を変数に(だけ!)さらなる処理:
for /f "delims=" %i in ('certutil -v -hashfile myPackage.nupkg SHA256 ^| find /i /v "sha256" ^| find /i /v "certutil"') do set myVar=%i
出力をテストするには、varを使用してパイプエコーコマンドを追加します。
for /f "delims=" %i in ('certutil -v -hashfile myPackage.nupkg SHA256 ^| find /i /v "sha256" ^| find /i /v "certutil"') do set myVar=%i | echo %myVar%
少し話題から外れていますが、参考までに、NuGetパッケージをArtifactoryにアップロードする前にこれを使用しました。ところで。代わりに、チェックサムが自動的に計算されるJFrog CLIを使用できます。
Windows用の* nix cksumコマンドラインユーティリティのC#実装を次に示します https://cksum.codeplex.com/
2019年に、MicrosoftはWindows 10用に次のソリューションを提供します。このソリューションはSHA256チェックサムで機能します。
Windowsキーを押します。 PowerShellと入力します。 Windows Powershellを選択します。 Enterキーを押します。コマンドを貼り付ける
Get-FileHash C:\ Users\Donald\Downloads\File-to-be-be-checked-by-sha256.exe |フォーマットリスト
File-to-be-checked-by-sha256.exeを、チェックするファイルの名前に置き換えます。
ファイルがあるパスにパスを置き換えます。 Enterキーを押します。 Powershellは次を示します
アルゴリズム:SHA256ハッシュ:123456789ABCDEFGH1234567890 ...パス:C:\ Users\Donald\Downloads\File-to-be-checked-by-sha256.exe