windows批量比较md5sum和md5文件内容

标签 windows batch-file windows-server

我有一个文件夹,其中包含一些名为 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 和大写字母分开。希望这会很容易,他们比较应该更容易。

谢谢。

最佳答案

@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

关于windows批量比较md5sum和md5文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632764/

相关文章:

Windows .bat 文件,%~$PATH :1 quotes issue

python - 从批处理文件中调用 python 行

docker - Windows 服务器上的 Docker 是 "free"吗?

windows - 使用命名管道作为文件

windows - wxWidgets 和 WM_NCHITTEST

windows - Groovy Shell 警告 "Could not open/create prefs root node ..."

powershell - msiexec.exe - 嵌入

windows - 如何在 Windows 7 上安装 Web Application Stress Tool (WAST) (homer)

powershell - 从 Powershell 调用带有非常长的可变参数列表的程序?

c# - 在 Windows Server 2008 或更高版本上检测提升的权限