Как перенести файлы через консоль/скрипт в разные папки?

При перекодировании ffmpeg`ом 124 видео пришлось класть в одну папку, потому что он не поддерживает в указании места для файла вывода русские буквы. Теперь надо пройтись в по папкам, где лежат оригиналы и заменить их на перекодированные файлы. Еще не откажусь от хорошего справочника по bat/cmd/PowerShell.
for /r %%i in (SAM*.MP4) ffmpeg.exe -hide_banner -i "%%i" -c:v h264_nvenc "D:\Ffmpeg\%%~ni.mp4"

Лежало много видео с большим битрейтом в многих подпапках по такому адресу: D:\С 500 гб\Лагеря\ОЦ Команда\Фото и видео. Для уменьшения их битрейта взял ffmpeg и с помощью батника прогнал их через него. Ставил вместо D:\Ffmpeg\ -> %%~dpni.mp4( что вписывает туда полный путь до файла + его имя без расширения) и ffmpeg ругался на русский язык в файле вывода. Вот код ошибки:
spoiler
OUT_D:\╨б 500 ╨│╨▒\╨Ы╨░╨│╨╡╤А╤П\╨Ю╨ж ╨Ъ╨╛╨╝╨░╨╜╨┤╨░\╨д╨╛╤В╨╛ ╨╕ ╨▓╨╕╨┤╨╡╨╛\20\╨Ъ╨╛╨╝╨╝╤Г╨╜╨╕╨║╨░╤В╨╕╨▓╨╜╤Л╨╣ ╤В╤А╨╡╨╜╨╕╨╜╨│\SAM_3885.mp4: Invalid argument
Понятно, что символы так выводятся из-за неправильной кодировки, но не в этом суть.
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
Moskus
@Moskus
Нужно было делать так:
for /r %%i in (SAM*.MP4) do ffmpeg.exe -hide_banner -i "%%i" -c:v h264_nvenc "D:\Ffmpeg\%%~ni.mp4" & copy /Y "D:\Ffmpeg\%%~ni.mp4" "%%~dpni.mp4"

Сейчас можно сделать так:
for /r %%i in (SAM*.MP4) do copy /Y "D:\Ffmpeg\%%~ni.mp4" "%%~dpni.mp4"


Как справочником, я пользуюсь https://ss64.com/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 10:01
500 руб./за проект
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час