Script por lotes para cambiar el tamaño de los archivos JPEG en la carpeta de música a 350x350 y eliminar archivos no deseados

Script por lotes para cambiar el tamaño de los archivos JPEG en la carpeta de música a 350x350 y eliminar archivos no deseados

Actualmente uso un script para cambiar el nombre de las carpetas de música, por ejemplo. Taylor Swift - 1989a una nueva carpeta Taylor Swiftcon una subcarpeta 1989donde todos los archivos se movieron a ella.

También agregué una línea de cambio de nombre para cambiar el .jpgnombre del archivo que se va a cambiar Folder, lo cual funciona de maravilla.

Me gustaría saber si es posible cambiar el tamaño/escalar ese .jpgarchivo a un tamaño más pequeño de 350x350 en lugar de hacerlo a través del antiguo programa de imágenes de Microsoft Office 2010.

Por último, no sé cómo eliminar archivos no deseados, como .log, .txt,.info

Si pudiera obtener todo esto en el mismo script por lotes, sería increíble.

Esto es lo que uso actualmente:

@echo off & cd /d "%~dp0"

for /f delims^= %%i in =;(' dir /a:-a /b "* - *"
    ');= do for /f usebackq^tokens^=1*delims^=-^" %%G in =;(`
         set /p "'=%%~nxi"^<nul `);= do call %:^) "%%~G" "%%~H" "%%~dpnxi"

for /r /d %%i in (*)do if exist "%%~fi\*.jpg" for /f tokens^=* %%I in (
'%__APPDIR__%where.exe "%%~i:*.jpg"')do ren "%%~fI" "Folder.jpg"

%:^)
if not "%~1" == "" =;(
     set "_dir=%~1" & set "_sub=%~2"
     call rename "%~3" "%%_sub:~1%%"
     call mkdir "%cd%\%%_dir:~0,-1%%"
     call move "%%_sub:~1%%" "%%_dir:~0,-1%%" 
     );= & exit /b 

Respuesta1

Para mí esto funciona, espero que sea como pretendías. Llené el código por lotes con comentarios para explicar qué hace cada comando (o la mayoría de ellos). Pruebe esto sólo en una copia para ver si funciona como se esperaba. Debes tener instalado Image Magick para que funcione la opción de cambio de tamaño y cambio de nombre a Carpeta.jpg.

@echo off

:: set here the rootfolder where the music folders are:
set RootFolder=%userprofile%\desktop\music

for /f "delims=" %%a in ('dir /ad /b "%RootFolder%\*-*"') do for /f "tokens=1* delims=-" %%b in ("%%~a") do (
                                                                                                         set "OriginalName=%%~a"
                                                                                                         set "FolderPart1=%%~b"
                                                                                                         set "FolderPart2=%%~c"
                                                                                                         call :Edit "%%~b" "%%~c"
                                                                                                        )
echo This is the end....
exit


:Edit
:: checks and removes if there are white spaces in front and back of new folder names:
if "%FolderPart1:~-1%"==" " (set "FolderPart1=%FolderPart1:~0,-1%" & goto :Edit)
if "%FolderPart2:~0,1%"==" " (set "FolderPart2=%FolderPart2:~1%" & goto :Edit)

:: deletes log txt and info files:
del /q "%RootFolder%\%OriginalName%\*.log"
del /q "%RootFolder%\%OriginalName%\*.txt"
del /q "%RootFolder%\%OriginalName%\*.info"

:: uses image magick to create a resized copy named Folder.jpg of a jpg file inside the original folder: 
magick "%RootFolder%\%OriginalName%\*.jpg" -resize 350x350 "%RootFolder%\%OriginalName%\Folder.jpg"

:: deletes all jpg files except Folder.jpg inside the original folder:
for /f "delims=" %%a in ('dir /b "%RootFolder%\%OriginalName%\*.jpg" ^|find /i /v "Folder.jpg"') do del /q "%RootFolder%\%OriginalName%\%%~a"

:: Creates a new folder from the part before the hifen "-" in the original folder:
if not exist "%RootFolder%\%FolderPart1%" md "%RootFolder%\%FolderPart1%"

:: moves and renames the original folder to the second part or the original foldername (behind the hifen):
move "%RootFolder%\%OriginalName%" "%RootFolder%\%FolderPart1%\%FolderPart2%"
goto :EOF

información relacionada