1

我有一个文件夹,其中包含一些名为 1.zip、2.zip 等的 zip 文件。

该文件夹还包含每个 zip 的 md5 文件,例如 1.zip.md5 ... n.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 回答