Я хочу создать пакетный скрипт, который будет принимать все файлы изображений, которые больше, чем x, сжимать их в один .zip.
Затем возьмите все оставшиеся файлы изображений, размер которых меньше того же размера x, и сожмите их в один .zip
Я пробовал несколько, несколько разных способов и не могу понять это. Я искал здесь, и все могучие Google лол
Мои последние мысли - перечислить файлы, которые больше, в текстовом файле, временно, а затем использовать этот список для 7zip, чтобы сжать их, но не могу понять, как отобразить / распечатать / перечислить их в 7zip.
@ECHO OFF
SETLOCAL EnableDelayedExpansion
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
for /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)
SET FOLDER=%~dp1
REM Sets current directory
SET LOG="log.txt"
pushd %FOLDER%
REM Changes directory to current
for %%a in ("%cd%") do SET NAME=%%~na
REM Gets the last directory name and sets it as a variable
SET ZIPNAME=%NAME% - Originals.zip
SET ZIPNAME2=%NAME% - Photos.zip
if exist ".smaller.txt" del /F ".smaller.txt"
if exist ".larger.txt" del /F ".larger.txt"
if exist "%ZIPNAME%" del /F "%ZIPNAME%" | echo %MYDATE%_%MYTIME%: %COMPUTERNAME% deleted %ZIPNAME%>>%LOG%
if exist "%ZIPNAME2%" del /F "%ZIPNAME2%" | echo %MYDATE%_%MYTIME%: %COMPUTERNAME% deleted %ZIPNAME2%>>%LOG%
REM Deletes old zips if they exists
FOR /F "usebackq delims=;" %%A IN (`dir /b *.jpg *.jpeg *.png *.gif *.bmp`) DO (
IF %%~zA LSS 1048576 (
ECHO %%A >>.smaller.txt
) ELSE (
ECHO %%A >>.larger.txt
)
)
FOR /F "tokens=* delims=" %%x IN (.smaller.txt) DO SET SMALLER=!SMALLER!%%x
FOR /F "tokens=* delims=" %%x IN (.larger.txt) DO SET LARGER=!LARGER!%%x
PAUSE