Optionally batch file can delete .fb2 files after they are successfully packed, see comment in the code.
@echo off
setlocal enableextensions enabledelayedexpansion
set zipper="%ProgramFiles%\7-Zip\7z.exe"
set total=0
set packed=0
set skipped=0
set failed=0
for /r %%f in (*.fb2) do (
set filename=%%~df%%~pf%%~nf
set fb2=!filename!.fb2
set fb2zip=!fb2!.zip
set /a total+=1
if exist !fb2zip! (
echo !fb2!: already packed
set /a skipped+=1
) else (
set success=0
%zipper% a -tzip !fb2zip! !fb2! > nul
if 0==%ERRORLEVEL% (
%zipper% t !fb2zip! !fb2! > nul
if 0==%ERRORLEVEL% (
rem Uncomment the following line to delete packed .fb2 files
rem del !fb2!
set success=1
)
)
if 1==!success! (
echo !fb2!: OK
set /a packed+=1
) else (
echo !fb2!: error %ERRORLEVEL%
set /a failed+=1
)
)
)
echo -------------------
echo %total% file(s) processed
echo %packed% file(s) packed successfully
echo %skipped% file(s) skipped
echo %failed% file(s) failed
No comments:
Post a Comment