Иногда неспособность оболочки cmd расширять пути подстановки может быть неудобством. Мне пришлось передать 100 файлов из каталога в программу, и я не смог набрать * .ext. Вместо этого я использовал msw 'ls', чтобы вывести список в файл, а затем заменил символы новой строки пробелами, скопировал и вставил в cmd. Совсем кошмар.
Я подозреваю, что ответ будет отрицательным, но кто-нибудь имел дело с этим или придумал какой-нибудь способ облегчить это?
I suspect the answer will be no, but has anyone dealt with this or come up with any way to make this easier?
На самом деле, у меня возникла противоположная проблема, я пытаюсь найти способ заставить интерпретатор команд обрабатывать свой список как строки и не допускать его интерпретацию как подстановочных знаков. Например, for %i in (foobar baz really?) do @echo %i
будет рассматривать последний элемент ( really?
) в качестве имени файла шаблона, и пропустить его , если нет файлов с именем really1
, reallyz
и т.д. ☹
?
недопустимый символ для имен файлов в файловой системе Windows. Символ может быть интерпретирован только как подстановочный знак. См. Имена файлов, путей и пространств имен в MSDN и Использование подстановочных знаков в TechNet.