Este script deve copiar o nome do arquivo e defini-lo como o título (metadados EXIF) do vídeo. Peguei o comando ExifTool do Video Stack Exchange e funcionou como esperado, mas agora tentei adicionar algumas coisas a ele, mas o script não funciona como esperado.
Coisas que ele supostamente faz:
- Verifique recursivamente todos os arquivos MP4 para contagem.
- Atualizar o título com base no nome do arquivo.
- Mostrar o número de atualizações bem-sucedidas e malsucedidas.
Encontrei um script Python no Video Stack Exchange que supostamente faz o que deveria fazer, mas estou tentando fazer isso em um arquivo em lote.
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: Initialize counters for .mp4 files
set count=0
set total=0
set error_count=0
:: Count the .mp4 files in the directory and subdirectories
for /r %%f in (*.mp4) do (
set /a total+=1
)
:: Print how many .mp4 files are found
echo Found !total! .mp4 files.
:: Process each .mp4 file and update metadata
for /r %%f in (*.mp4) do (
set /a count+=1
exiftool -overwrite_original "-Title<%%~nf" "%%~f" >nul 2>&1
if !errorlevel! equ 0 (
echo ✅ Updated (!count! / !total!) : %%~nxf
) else (
set /a error_count+=1
echo ❌ Error (!error_count!) updating: %%~nxf
)
)
:: Final summary
echo.
echo Metadata update complete.
echo Total files updated: !count!
echo Total errors: !error_count!
pause
O que causa o travamento são os parênteses dentro do comando if:
echo ✅ Updated (!count! / !total!)
Mas você pode escapar deles com circunflexo:
echo ✅ Atualizado ^(!count! / !total!^)
No comando exiftool, acho que deveria haver um sinal de igual, não um sinal de menor que:
Então seu lote deve ficar assim: