Консоль Windows — совместимость с BAT

#windows #batch-file #ffmpeg #command-prompt #windows-console

#Windows #пакетный файл #ffmpeg #командная строка #windows-консоль

Вопрос:

У меня есть инструкция командной строки, которая отлично работает при ручном вводе ее в консоль, однако, когда я помещаю ее в bat-файл, она не работает.

 for %f in (*.flac) do ffmpeg -i "%f" -acodec alac "%~nf.m4a"
  

Вот сообщение об ошибке, когда я пытаюсь запустить файл bat

 The following usage of the path operator in batch-parameter
substitution is invalid: %~nf.m4a"
  

Есть ли какой-либо способ это исправить?
Инструкция преобразует файлы flac в файлы alac с помощью программы ffmpeg.

Ответ №1:

При интерпретации пакетных файлов %% заменяется на%, поэтому вашим решением было бы заменить %f на %%f

Комментарии:

1. Спасибо за это, мне пришлось заменить все знаки%, а не только %f.

2. @Michael: только параметрам циклов FOR должны предшествовать два процента

3. @jeb: Разве не все% в этом операторе находятся в цикле for?