批处理文件以计算.zip文件中的文件

时间:2018-06-28 07:32:38

标签: batch-file

有多个压缩文件,例如zip1,zip2等。每个zip文件中都有多个文件。我们如何创建一个批处理文件,该批处理文件仅将特定文件夹中的文件数显示为 zip1:524个文件 zip2:322个文件

我编写的代码可以在其他文件夹上运行,而不能在zip文件上运行

@ECHO OFF
FOR /D %%D IN ("folderpath\*") DO (
  FOR /F %%K IN ('DIR /A-D "%%D" 2^>NUL ^| FIND "File(s)" ^|^| ECHO 0') DO (
    ECHO %%D: %%K
  )
)

1 个答案:

答案 0 :(得分:0)

这是一个使用zipjs.bat并在zip文件中计数文件的子例程(不需要外部二进制文件):

@echo off

:countFilesInZip file.zip [out]
setlocal
set "count=0"
for /f "skip=1 tokens=* delims=" %%a in ('
    call zipjs.bat list  -flat yes -source "%~f1"^|
    findstr /e /v "\\"
') do (
  set /a count=count+1
)

::echo %count%
endlocal & if "%~2" EQU "" (
    echo %count% 
) else (
   set "%~2=%count%"
)
goto :eof

使用它:

call :countFilesInZip  "c:\zipfile.zip" count
echo %count%