Я запускаю эту команду в пакетном файле:
for %I in (*.txt *.doc) do copy %I c:\test2
... и он продолжает возвращаться:
В это время я был неожиданным.
В чем причина этой ошибки?
Я запускаю эту команду в пакетном файле:
for %I in (*.txt *.doc) do copy %I c:\test2
... и он продолжает возвращаться:
В это время я был неожиданным.
В чем причина этой ошибки?
Если вы работаете в пакетном /cmd файле, вам нужно удвоить маркеры %
:
for %%i in (*.txt *.doc) do copy %%i c:\test2
Единственный вариант %
работает только из командной строки.
При запуске из командного файла переменные должны быть обозначены знаками с двумя процентами, такими как %%I
, только из командной строки, которую вы используете
Я столкнулся с ситуацией, когда я получал эту ошибку из файла с именем *.cmd. Ошибка возникла, когда я попытался получить доступ к первому аргументу команды пакета:
if %1 EQU ""
Как только я помещаю кавычки вокруг символа для первого аргумента, предупреждающее сообщение исчезло:
if "%1" EQU ""
Не прямой ответ на вопрос, но если вы встретите это сообщение в любой программе, пакетной команде и т.д., то это скорее всего связано с вашим PATH, содержащим символы "
.
Например, в редакторе Atom я получил сообщение в представлении настроек.
"\"GNU was unexpected at this time
Это произошло из-за другой программы, введя мою PATH следующую запись
...;C:\"Program Files"\"GNU ARM Embedded;..."
Из-за этого символ антиспаса читается как экранированный некоторыми программами, что вызывает проблемы, потому что тогда это не разделитель пути, а простой символ.
Решение для меня состояло в том, чтобы удалить те "
из PATH, и все сработало нормально.
...;C:\Program Files\GNU ARM Embedded;...
PS: У меня есть сомнения, может ли это повлиять на исходную программу (GNU ARM Embedded в этом случае), которая, возможно, не поддерживает пробелы в именах путей. Если кто-то с более глубоким пониманием может прояснить в комментариях, я обновлю свой пост.
Надеюсь, что это поможет