Проблема:
Если полный путь файла содержит амперсанд (
&), но не содержит других “плохих” символов, то
custom.module при раскрытии спецификатора
%%A такой путь не закавычивает. Это приводит к тому, что при попытке в
custom.default.ini использовать
%%A в конструкции вида “
ExecutionString=%COMSPEC% /c ...” командный интерпретатор обламывается на разборе командной строки, т.к. резонно полагает, что
& — это разделитель двух команд, требующих последовательного выполнения.
Как воспроизвести:
1. В
custom.default.ini добавить секцию
Code: Select all
[Test]
Mask=*.Ampersand
ExecutionString=%COMSPEC% /c echo %%A
UseTimeout=0
Timeout=0
Enabled=1
2. Создать файлы
"C:\A B.Ampersand" и
"C:\A&B.Ampersand"
3. Посмотреть на них через
Anamorphosis:
Для первого получим “"C:\A B.Ampersand"”, а для второго “C:\A
'B.Ampersand' is not recognized as an internal or external command, operable program or batch file.”
Предложение:
Использовать для закавычивания
%%A содержимое
TechInfo #1 (
"WordDiv").
PS
Сходная проблема с ‘
,’ и ‘
;’ в путях при попытке вызывать командный файл.