windows批处理比较md5sum与md5文件内容

windows批处理比较md5sum与md5文件内容,windows,batch-file,windows-server,Windows,Batch File,Windows Server,我有一个包含一些zip文件的文件夹,名为1.zip、2.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: %mypa

我有一个包含一些zip文件的文件夹,名为1.zip、2.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
@echo关闭
设置mypath=G:\Temp\
对于(*.zip)中的%%f,请执行以下操作(
回显处理:%mypath%%%f
md5sum<%mypath%%%f>%mypath%%%f.tmp
设置/p总和=
@echo关闭
设置mypath=。
rem cd/d“%mypath%”
setlocal enableDelayedExpansion
对于(*.zip)中的%%f,请执行以下操作(
回波处理:%%~dpfnxf
对于('md5sum^<“%$dpfnxf””)中的/f“tokens=1 delims=*-”%%S,请设置“sum=%%S”
回声总和:!总和!
:rm%mypath%%%f.tmp
暂停
)
端部
暂停

md5sum<%mypath%%%f
随机选取的zip文件的输出是什么?9930a67db849bbbf483d72a3fc92d88a*-您是否输入了
mypath=G:\Temp`因为脚本中没有
cd`或
pushd
这是文件所在的路径。脚本是我发布的脚本。其中没有其他内容。服务器是Windows Azure 2012。我认为win 2012中
set/p
的工作方式发生了变化。例如,在没有新行的情况下打印字符串不再工作:
echo|set/=在同一行上打印此内容
@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