1

1.zip、2.zip などと呼ばれるいくつかの zip ファイルを含むフォルダーがあります。

フォルダーには、この 1.zip.md5 ... n.zip.md5 のような各 zip の md5 ファイルもあります。

md5 ファイルには md5sum が大文字で、末尾に新しい行があります

すべての zip ファイルを読み取り、それらの md5sum を計算し、関連する md5 ファイル内のものと比較するバッチ プログラムを作成しようとしています。

私はここまで来ました。

@echo off
set mypath=G:\Temp\

for %%f in (*.zip) do (
  echo PROCESSING: %mypath%%%f
  md5sum < %mypath%%%f > %mypath%%%f.tmp
  set /p sum=<%mypath%%%f.tmp
  echo SUM: %sum%
  :rm %mypath%%%f.tmp
  pause
)
pause

私の問題はset /p sum=<%mypath%%%f.tmp、何らかの理由でコンテンツを取得できないように見えることです。

その上に、md5sum は小文字の md5sum を出力し、その後に*-.

私はバッチに慣れていないので、これを理解するのにすでに何時間も費やしています。

何が間違っているのか、また行き詰まったときにデバッグを行う方法について誰かがヒントを教えてもらえますか?

これを乗り越えたら、tpm ファイルの内容をスペースで分割して、md5sum と大文字を区切る必要があります。簡単に比較できることを願っています。

ありがとうございました。

4

1 に答える 1

2
@echo off
set mypath=.
rem cd /d "%mypath%"
setlocal enableDelayedExpansion
for %%f in (*.zip) do (
  echo PROCESSING: %%~dpfnxf
  for /f "tokens=1 delims=*- " %%S in ('md5sum ^< "%%~dpfnxf" ') do set "sum=%%S" 
  echo SUM: !sum!
  :rm %mypath%%%f.tmp
  pause
)
endlocal
pause
于 2013-10-28T11:05:05.223 に答える