Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ECHO OFF
- :: Batch to drag and drop photos
- :: or add to SendTo Menu RESIZE-PHOTO.bat
- :: explorer %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo
- :: select files or folders and open SendTo Menu
- :: tools from ImageMagick and sed.exe from UnxUtils
- :: SET imconvert=D:\PortableApps\ImageMagick\imconvert.exe
- :: SET identify=D:\PortableApps\ImageMagick\identify.exe
- :: SET sed=D:\PortableApps\UnxUtils\sed.exe
- :: you may change these settings
- SET width="1920^>"
- SET quality=-quality 90%%
- SET filter=-filter Lanczossharp -distort resize
- SET today=%date:~0,5%
- SET /A count=1
- IF EXIST "%~1\" (
- CALL :FOLDER %*
- )
- :: for handling with droped files
- :LOOP
- IF [%1]==[] GOTO EOF
- CD /D "%~dp1"
- :: check if is an image file
- IF /I NOT [%~x1]==[.jpg] (
- IF /I NOT [%~x1]==[.png] (
- IF /I NOT [%~x1]==[.gif] (
- IF /I NOT [%~x1]==[.bmp] (
- IF /I NOT [%~x1]==[.tif] (
- GOTO :NOPHOTO
- )
- )
- )
- )
- )
- :: get folder name to create new one
- FOR %%* IN (.) DO SET folder=%%~n*
- IF NOT EXIST "%folder%-%TODAY%" MKDIR "%folder%-%TODAY%"
- :: get jpg date to apend to new file name
- IF /I [%~x1]==[.jpg] (
- FOR /F "usebackq tokens=1" %%i IN (`identify.exe -format %%[exif:DateTime] %1 ^| sed "s/://g" ^| sed "s/^..//"`) DO SET SUFIX=-%%i
- )
- SET source=%~nx1
- SET filename=%~n1
- SET target=%folder%-%TODAY%\%filename%%SUFIX%.jpg
- :: if file does not yet exist start converting
- IF NOT EXIST "%target%" (
- ECHO %time:~0,8% Resizing %count% %source% to %target%
- imconvert -interlace Plane %filter% %width% %quality% "%source%" "%target%"
- SET /A count+=1
- )
- :NOPHOTO
- SHIFT
- GOTO LOOP
- :: for handling with droped folders
- :FOLDER
- FOR /D %%D IN (%*) DO (
- ECHO. & ECHO PROCESSING FOLDER %%~nD & ECHO.
- CD /D "%%D"
- FOR /f "delims=" %%P in ('dir /b /a:-s-h *.jpg *.png *.gif *.bmp *.tif') DO (
- IF EXIST "%%P" CALL :RECURSE "%%P"
- )
- )
- GOTO EOF
- :RECURSE
- :: get folder name to create new one
- FOR %%* IN (.) DO SET folder=%%~n*
- IF NOT EXIST "%folder%-%TODAY%" MKDIR "%folder%-%TODAY%"
- :: get jpg date to apend to new file name
- IF /I [%~x1]==[.jpg] (
- FOR /F "usebackq tokens=1" %%i IN (`identify.exe -format %%[exif:DateTime] %1 ^| sed "s/://g" ^| sed "s/^..//"`) DO SET SUFIX=-%%i
- )
- SET source=%~nx1
- SET filename=%~n1
- SET target=%folder%-%TODAY%\%filename%%SUFIX%.jpg
- :: if file does not yet exist start converting
- IF NOT EXIST "%target%" (
- ECHO %time:~0,8% Resizing %count% %source% to %target%
- imconvert -interlace Plane %filter% %width% %quality% "%source%" "%target%"
- SET /A count+=1
- )
- :EOF
- IF [%1]==[] ECHO. & ECHO JOB DONE! & ECHO.
Advertisement
Add Comment
Please, Sign In to add comment