Модифицировал скрипт Sk0rp'a для Traum Library, чтобы не использовать внешний архиватор, работает шустрее и не пропускает файлы с восклицательными знаками. Баг вылез такой:
Есть в Traum Library такой файл "Alexander - 2150 A.D..fb2.zip"
Если обработать его без сжатия, выйдет файл "Alexander - 2150 A.D.fb2" (точка в конце названия съедена)
Если со сжатием, получится архив "Alexander - 2150 A.D.fb2.zip" с файлом внутри "Alexander - 2150 A.fb2" (файл в архиве обрезан до точки)
Сам скрипт:
- Код: выделить все
@echo off
set tmpout=%~f3
if #%tmpout%#==## set tmpout=%TEMP%\fb2fix
set fb2fix=%~f1
cd %2
FOR /D %%D IN (*.*) DO (
call :nextdir "%%~nxD"
)
goto :EOF
:nextdir
echo Folder: %~1
FOR /D %%D IN ("%~1\*.*") DO (
call :nextdir "%~1\%%~nxD"
)
"%fb2fix%" /replacechar:" " /compress+ /translify- /recurse- /incversion+ "%~f1" /output:"%tmpout%"
FOR /F "tokens=*" %%i IN ('dir "%tmpout%\Good\*.zip" /B /A-D') DO (
move "%tmpout%\Good\%%i" "%~f1\%%~ni.fb2.zip" >NUL
)
FOR /F "tokens=*" %%i IN ('dir "%tmpout%\Bad\*.zip" /B /A-D') DO (
move "%tmpout%\Bad\%%i" "%~f1\%%~ni.fb2.zip" >NUL
)
Первый параметр - путь к FB2Fix.exe.
Второй - папка для обработки.
Третий необязательный - папка для временных файлов.
Заменяет оригинальные файлы.
По ходу работы появляется "Файл не найден", это не ошибка, а сообщение, что в папке нет файлов.
Применять не советую, пока присутствует баг с точками
