Я понимаю, что вы можете избежать амперсандов в пакетные файлы с использованием символа шляпы
, например,
echo a ^& b
a & b
Но я использую команду
for /f "tokens=*" %%A IN ('DIR /B /A-D /S .acl') DO ProcessACL.cmd "%%A"
, которая находит все файлы с именем '.acl' в текущем каталоге или подкаталоге текущего каталога.
Проблема в том, что я нахожу имена путей, содержащие символ '&' (и нет, их нельзя переименовать), и мне нужен способ автоматического экранирования амперсандов и вызова второго командного файла с экранированным путем как параметр.
rem ProcessACL.cmd
echo %1