Of course with a batch file you can combine both operations 
With the pause at the end of the batch the cmd windows will stay open.
It's good if you want to see if the operation was sucessful or any errors occured but can be also very frustrating if dealing with a large number of files and therefore a large number of open cmd windows.
You could tweak it so that it only stays open if an error occured:
@echo off
"metaflac.exe" --preserve-modtime --remove --block-type=PICTURE,PADDING --dont-use-padding "%~1" && echo "%~nx1" - padding removed
if NOT %ERRORLEVEL% EQU 0 GOTO :ERROR
"metaflac.exe" --preserve-modtime --add-padding=8192 "%~1" && echo "%~nx1" - Padding added
if NOT %ERRORLEVEL% EQU 0 GOTO :ERROR
GOTO :END
:ERROR
pause
:END
Adding additional parameters like --preserve-modtime is always possible and is a personal preference.
A loop in the batch is also possible if you want to run it on a folder base instead.
Than you have to use the "%_folderpath%" variable instead (or extract the folder from the filenmae inside the batch).
And you have to call it for each folder separately since without the "for each file" flag mp3tag runs the script for the first (marked) file only.
For me the benefits from running it from inside mp3tag is that I can run it on specific files but you loose that possibility if you run it on a folder base.
For a folder based approach an independent batch file is imho the better solution.
I wrote the following script exactly for this purpose.
It's a more advanced version of the script posted above.
It has a few settings that can be changed while the script is running:
- file or folder
- include subfolders
- preserve modtime
- reduce padding after cover is removed
- restore standard padding
I saved the metaflac.exe and my coverflac.bat in the same folder and added the folder to the windows path variable. This way i can run the script from any folder by just opening a cmd window and run coverflac.
rem ----------------------------
rem 2020-08-07 V1.1
rem fixed: script failure if selected file or folder contains some special characters
rem 2020-08-01 V1.0
rem initial release
rem ----------------------------
@echo off
chcp 65001
rem --------------------------------------------------
rem standard settings change this to your preferences:
set dirOrFile=".\"
set includeSubDir=no
set reducePadding=yes
set restoreStdPadding=yes
set preserveModtime=no
rem --------------------------------------------------
set fileType=none
set option=0
set menu=0
:START
cls
echo ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
echo ■ ▄█████ ██ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
echo ■ ■ ██ ██ █ \ COVER / █
echo ■ ■ ■ ██████ ██ ▄██████▄ ▄██████▄ █ \ / █
echo ■ ■ ■ ██ ██ ██ ██ █ \ / █
echo ■ ■ ■ ██ ██ ▄███████ ██ █ ART █
echo ■ ■ ■ ■ ██ ██ ██ ██ ██ █ / \ █
echo ■ ■ ■ ■ ██ ██ ██ ██ ██ █ / \ █
echo ■ ■ ■ ■ ██ ██ ▀██████▀ ▀██████▀ █ / REMOVER \ █
echo ■ ■ ■ ■ free lossless audio codec ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
echo ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
echo V1.1 - (C) 2020 Doni
echo ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
rem check and correct settiongs:
if /I not "%includeSubDir%"=="yes" (
set includeSubDir=no
) else (
set includeSubDir=yes
)
if /I not "%reducePadding%"=="yes" (
set reducePadding=no
) else (
set reducePadding=yes
)
if /I not "%restoreStdPadding%"=="yes" (
set restoreStdPadding=no
) else (
set restoreStdPadding=yes
)
if /I not "%preserveModtime%"=="yes" (
set preserveModtime=no
) else (
set preserveModtime=yes
)
rem show actual settiongs:
echo SETTINGS:
echo ---------
set dirOrFile=%dirOrFile:/=\%
set dirOrFile=%dirOrFile:"=%
FOR %%i IN ("%dirOrFile%") DO set dirOrFile=%%~fi
if exist "%dirOrFile%" (
if /I "%dirOrFile:~-5%"==".flac" (
set fileType=file
) else (
if "%dirOrFile:~-2%"=="\*" (
set fileType=folder
) else (
if "%dirOrFile:~-1%"=="\" (
set fileType=folder
) else (
if exist "%dirOrFile%\*" (
set fileType=folder
) else (
set dirOrFile=""
set fileType=none
)
)
)
)
) else (
set dirOrFile=""
)
if "%fileType%"=="none" (
echo no file or folder selected
) else (
if "%fileType%"=="folder" (
pushd "%dirOrFile%"
if "%includeSubDir%"=="yes" (
for /f "delims=" %%a in ('2^>nul dir /B /A:-D-S /S *.flac ^| find /c /v ""') do set cnt=%%a
) else (
for /f "delims=" %%a in ('2^>nul dir /B /A:-D-S *.flac ^| find /c /v ""') do set cnt=%%a
)
popd
SetLocal EnableDelayedExpansion
echo selected folder: "!dirOrFile!"
if "%includeSubDir%"=="yes" (
echo found !cnt! FLAC files in folder and subfolders
) else (
echo found !cnt! FLAC files in folder
)
echo include sub directories: %includeSubDir%
EndLocal
) else (
echo selected file: "%dirOrFile%"
)
)
echo reduce padding: %reducePadding%
if "%reducePadding%"=="yes" echo restore standard padding: %restoreStdPadding%
echo preserve original modification time: %preserveModtime%
echo ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
rem Menu and Options
if %menu%==0 (
if %option%==0 GOTO :MAIN_MENU
if %option%==1 GOTO :FILE_AND_FOLDER_SETTINGS
if %option%==2 GOTO :CHANGE_SETTINGS
if %option%==3 GOTO :COVER_REMOVAL
if %option%==4 GOTO :END
)
if %menu%==1 GOTO :SETTINGS
:MAIN_MENU
set menu=0
set option=0
echo (1) Select Folder or File
echo (2) Settings
echo (3) Start Cover Removal
echo (4) EXIT
:ENTER_OPTION
set /p option="select option: "
set option=%option: =%
set option=%option:"=%
if %menu%==0 (
if not "%option%"=="1" (
if not "%option%"=="2" (
if not "%option%"=="3" (
if not "%option%"=="4" (
set option=0
)
)
)
)
)
GOTO :START
rem -------------------------------
:FILE_AND_FOLDER_SETTINGS
set dirOrFile=""
:FILE_AND_FOLDER_SETTINGS_CHANGE_DIR_OR_FILE
if not exist "%dirOrFile%" GOTO :SET_DIR_OR_FILE
if exist "%dirOrFile%" (
if /I "%dirOrFile:~-5%"==".flac" (
set fileType=file
) else (
set fileType=folder
if not "%dirOrFile:~-2%"=="\*" (
if not "%dirOrFile:~-1%"=="\" (
if not exist "%dirOrFile%\*" (
GOTO :NOT_FLAC_FILE_OR_FOLDER
)
)
)
)
) else (
GOTO :NOT_FLAC_FILE_OR_FOLDER
)
set menu=0
set option=0
GOTO :START
rem -------------------------------
:CHANGE_SETTINGS
set includeSubDir=""
set reducePadding=""
set restoreStdPadding=""
set preserveModtime=""
:CHANGE_SETTINGS_INCLUDE_SUB_DIR
if not "%includeSubDir%"=="yes" (
if not "%includeSubDir%"=="no" GOTO :SET_INCLUDE_SUB_DIR
)
:CHANGE_SETTINGS_REDUCE_PADDING
if not "%reducePadding%"=="yes" (
if not "%reducePadding%"=="no" GOTO :SET_REDUCE_PADDING
)
:CHANGE_SETTINGS_RESTORE_STD_PADDING
if "%reducePadding%"=="yes" (
if not "%restoreStdPadding%"=="yes" (
if not "%restoreStdPadding%"=="no" GOTO :SET_RESTORE_STD_PADDING
)
) else (
set restoreStdPadding=no
)
:CHANGE_SETTINGS_PRESERVE_MODTIME
if not "%preserveModtime%"=="yes" (
if not "%preserveModtime%"=="no" GOTO :SET_PRESERVE_MODTIME
)
set menu=0
set option=0
GOTO :START
rem -------------------------------
:NOT_FLAC_FILE_OR_FOLDER
echo "%dirOrFile%"
echo is not a directory or flac file
GOTO :SET_DIR_OR_FILE
:SET_DIR_OR_FILE
set /p dirOrFile="enter valid directory or flac file: "
set dirOrFile=%dirOrFile:"=%
set dirOrFile=%dirOrFile:/=\%
FOR %%i IN ("%dirOrFile%") DO set dirOrFile=%%~fi
GOTO :FILE_AND_FOLDER_SETTINGS_CHANGE_DIR_OR_FILE
:SET_INCLUDE_SUB_DIR
set /p includeSubDir="include sub directories y/n: "
if /I "%includeSubDir%"=="n" set includeSubDir=no
if /I "%includeSubDir%"=="no" set includeSubDir=no
if /I "%includeSubDir%"=="y" set includeSubDir=yes
if /I "%includeSubDir%"=="ye" set includeSubDir=yes
if /I "%includeSubDir%"=="yes" set includeSubDir=yes
GOTO :CHANGE_SETTINGS_INCLUDE_SUB_DIR
:SET_REDUCE_PADDING
set /p reducePadding="reduce PADDING after covers are removed y/n: "
if /I "%reducePadding%"=="n" set reducePadding=no
if /I "%reducePadding%"=="no" set reducePadding=no
if /I "%reducePadding%"=="y" set reducePadding=yes
if /I "%reducePadding%"=="ye" set reducePadding=yes
if /I "%reducePadding%"=="yes" set reducePadding=yes
GOTO :CHANGE_SETTINGS_REDUCE_PADDING
:SET_RESTORE_STD_PADDING
set /p restoreStdPadding="restore standard PADDING block size y/n: "
if /I "%restoreStdPadding%"=="n" set restoreStdPadding=no
if /I "%restoreStdPadding%"=="no" set restoreStdPadding=no
if /I "%restoreStdPadding%"=="y" set restoreStdPadding=yes
if /I "%restoreStdPadding%"=="ye" set restoreStdPadding=yes
if /I "%restoreStdPadding%"=="yes" set restoreStdPadding=yes
GOTO :CHANGE_SETTINGS_RESTORE_STD_PADDING
:SET_PRESERVE_MODTIME
set /p preserveModtime="keep file modification time untouched y/n: "
if /I "%preserveModtime%"=="n" set preserveModtime=no
if /I "%preserveModtime%"=="no" set preserveModtime=no
if /I "%preserveModtime%"=="y" set preserveModtime=yes
if /I "%preserveModtime%"=="ye" set preserveModtime=yes
if /I "%preserveModtime%"=="yes" set preserveModtime=yes
GOTO :CHANGE_SETTINGS_PRESERVE_MODTIME
rem -------------------------------
:COVER_REMOVAL
if "%fileType%"=="none" (
echo ERROR - no file or folder selected
pause
set menu=0
set option=0
GOTO :START
)
if "%fileType%"=="file" (
CALL :REMOVE_COVER "%dirOrFile%"
) else (
if "%includeSubDir%"=="yes" (
pushd "%dirOrFile%"
for /f "delims=" %%a in ('2^>nul dir /B /A:-D-S /S *.flac') do CALL :REMOVE_COVER "%%~fa"
popd
) else (
pushd "%dirOrFile%"
for /f "delims=" %%a in ('2^>nul dir /B /A:-D-S "*.flac"') do CALL :REMOVE_COVER "%%~fa"
popd
)
)
echo finished cover removal
pause
set menu=0
set option=0
GOTO :START
:END
cls
EXIT /B
rem ========== FUNCTIONS ==========
:REMOVE_COVER
set error=""
set metaflacCommand=""
dir /ar %1 >nul 2>nul && set error="file is marked as readonly"
if %error%=="" (
if "%reducePadding%"=="yes" (
if "%preserveModtime%"=="yes" (
set metaflacCommand="metaflac --remove --block-type=PICTURE,PADDING --dont-use-padding --preserve-modtime"
metaflac --remove --block-type=PICTURE,PADDING --dont-use-padding --preserve-modtime %1 2>nul
) else (
set metaflacCommand="metaflac --remove --block-type=PICTURE,PADDING --dont-use-padding"
metaflac --remove --block-type=PICTURE,PADDING --dont-use-padding %1 2>nul
)
) else (
if "%preserveModtime%"=="yes" (
set metaflacCommand="metaflac --remove --block-type=PICTURE,PADDING --preserve-modtime"
metaflac --remove --block-type=PICTURE,PADDING --preserve-modtime %1 2>nul
) else (
set metaflacCommand="metaflac --remove --block-type=PICTURE,PADDING"
metaflac --remove --block-type=PICTURE,PADDING %1 2>nul
)
)
SetLocal EnableDelayedExpansion
if not !ERRORLEVEL! EQU 0 set error="removing cover"
EndLocal
if %error%=="" (
if "%restoreStdPadding%"=="yes" (
if "%preserveModtime%"=="yes" (
set metaflacCommand="metaflac --add-padding=8192 --preserve-modtime"
metaflac --add-padding=8192 --preserve-modtime %1 2>nul
) else (
set metaflacCommand="metaflac --add-padding=8192"
metaflac --add-padding=8192 %1 2>nul
)
SetLocal EnableDelayedExpansion
if not !ERRORLEVEL! EQU 0 set error="restoring standard PADDING"
EndLocal
)
)
)
set error=%error:"=%
if "%error%"=="" (
echo [OK] "%~n1%~x1"
) else (
echo [ ] "%~n1%~x1"
if %metaflacCommand%=="" (
echo ERROR: %error%
) else (
echo ERROR: %error% with '%metaflacCommand:~1,-1% %1'
)
)
EXIT /B 0