У меня есть такая строка в нескольких пакетных файлах:
FOR %%f IN (%*) DO something.exe %%f
Я использовал их в течение длительного времени без проблем. Мне недавно пришлось заменить мой жесткий диск, и, насколько я знаю, была переустановлена Windows 7, как и прежде. Теперь, когда я запускаю какой-либо пакетный файл с такой строкой, он не обрабатывает «% *». Так что для чего-то вроде "XXX.bat * .txt" я получаю:
Невозможно открыть входной файл "* .txt"
Я использую Windows 7 как виртуальную машину в Parallels, обновленную с версии 8 до 10, если это имеет значение. Они также обновили мою Mac OS с Mountain Lion до Yosemite.
Еще более странно, что этот маленький командный файл отлично работает:
@ECHO off
FOR %%f IN (%*) DO start gvim %%f
Но этот дает сообщение, которое не может найти т? (где т? следует разобрать на t1, t2 и t3):
@ECHO off
FOR %%f IN (%*) DO af2.exe %%f
И я попытался добавить "начало" к нему, те же результаты.
Может быть, более простой способ сказать это:
Это работает:
af2 2014A 2014B 2014C
Но это:
af2 2014?
выдает ошибку при попытке доступа к файлу с именем "2014?"
И af2 вызывает для каждого файла программу, которую я написал и использовал более 20 лет, которая дает лишь небольшую статистику по файлу.