音楽フォルダ内の JPEG を 350x350 にサイズ変更し、不要なファイルを削除するバッチ スクリプト

音楽フォルダ内の JPEG を 350x350 にサイズ変更し、不要なファイルを削除するバッチ スクリプト

現在、スクリプトを使用して、音楽フォルダーの名前を、たとえば、すべてのファイルを移動したサブフォルダーを含むTaylor Swift - 1989新しいフォルダーに変更しています。Taylor Swift1989

.jpgまた、名前を変更するファイルを変更する名前変更行も追加しましたが、Folderこれはうまく機能します。

.jpg古い Microsoft Office 2010 画像プログラムを使用する代わりに、そのファイルを 350 x 350 の小さいサイズにサイズ変更/拡大縮小できるかどうかを知りたいです。

最後に、不要なファイルを削除する方法がわかりません。これらは.log、、.txt.info

これをすべて同じバッチ スクリプトで実行できれば素晴らしいと思います。

私が現在使用しているのは以下のものです:

@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 

答え1

私の場合、これはうまくいきました。あなたの意図どおりであることを願っています。バッチ コードには、各コマンド (またはほとんどのコマンド) の動作を説明するコメントを記入しました。期待どおりに動作するかどうかを確認するには、コピーでのみこれをテストしてください。サイズ変更と Folder.jpg への名前変更オプションが機能するには、Image magick がインストールされている必要があります。

@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

関連情報