Подтвердить что ты не робот

"В это время было неожиданно".

Я запускаю эту команду в пакетном файле:

for %I in (*.txt *.doc) do copy %I c:\test2

... и он продолжает возвращаться:

В это время я был неожиданным.

В чем причина этой ошибки?

4b9b3361

Ответ 1

Если вы работаете в пакетном /cmd файле, вам нужно удвоить маркеры %:

for %%i in (*.txt *.doc) do copy %%i c:\test2

Единственный вариант % работает только из командной строки.

Ответ 2

При запуске из командного файла переменные должны быть обозначены знаками с двумя процентами, такими как %%I, только из командной строки, которую вы используете

Ответ 3

Я столкнулся с ситуацией, когда я получал эту ошибку из файла с именем *.cmd. Ошибка возникла, когда я попытался получить доступ к первому аргументу команды пакета:

if %1 EQU ""

Как только я помещаю кавычки вокруг символа для первого аргумента, предупреждающее сообщение исчезло:

if "%1" EQU ""

Ответ 4

Не прямой ответ на вопрос, но если вы встретите это сообщение в любой программе, пакетной команде и т.д., то это скорее всего связано с вашим 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 в этом случае), которая, возможно, не поддерживает пробелы в именах путей. Если кто-то с более глубоким пониманием может прояснить в комментариях, я обновлю свой пост.

Надеюсь, что это поможет