Пакетный сценарий «Капля» - имена файлов, содержащие амперсанды

Я пытаюсь создать командный файл, в который можно перетаскивать другие файлы. В частности, я использую ffmpeg для редактирования аудиофайлов, созданных портативным диктофоном. Проблема заключается в использовании имен файлов с амперсандами (&).Даже при цитировании ввода все, что находится после &, сбрасывается, но только тогда, когда на него перетаскиваются файлы; если имя файла вводится в командной строке, сценарий работает нормально. Перед закрытием окна cmd я на короткое время вижу остальную часть имени файла с ошибкой, говорящей, что она не распознается как допустимая команда.

Вот мой сценарий:

rem Change to drive and directory of input file
%~d1
cd %~p1

rem ffmpeg: mix to one channel, double the volume
%HOMEDRIVE%%HOMEPATH%\ffmpeg.exe -i "%~nx1" -ac 1 -vol 1024 "%~n1 fixed%~x1"

pause

Вот что появляется в командной строке после удаления «ch17 & 18.mp3» :

C:\Users\computergeeksjw\Desktop>C:\Users\computergeeksjw\ffmpeg.exe -i "ch17" -ac 1 -vol 1024 "ch17 fixed"
[...]
ch17: No such file or directory

В случае, если это важно: я использую Windows 8 Developer Preview. Это вызывает мою проблему? Такая же ошибка возникает в Windows 7 или более ранних версиях?

7
задан aschipfl 12 June 2019 в 00:17
поделиться