for / f закрывает приглашение CMD немедленно - PullRequest
2 голосов
/ 30 августа 2011

Когда я открываю cmd.exe и набираю эту первую строку и нажимаю клавишу ВВОД, все работает нормально. Когда я ввожу эту другую строку и нажимаю ENTER, она немедленно закрывается.

Я могу изменить ('a') на ('asdfgh'), тогда та же проблема. или% q до% f та же проблема.

Разница в / f, по какой-то причине FOR / F с ('......') приводит к закрытию cmd.exe.

Это происходит на одной из моих систем, а не на другой

C:\>for %q in ('a') do echo %q   <ENTER>

C:\>echo 'a'
'a'

C:\>for /f %q in ('a') do echo %q <ENTER>

Ответы [ 3 ]

4 голосов
/ 30 августа 2011

Этот парень, похоже, успешно решил очень похожую проблему:

для / f немедленно закрывает окно cmd

Проблема в этом случае оказалась в том, чтоделать с переменной окружения COMSPEC, поскольку изначально она установлена ​​неправильно, как кажется.Парень применил выход из учетной записи Windows и обратно.

0 голосов
/ 30 августа 2011

Глядя на справку для 'FOR' ('FOR /?'), Вы можете увидеть, что опция '/ F' предназначена для разбора ввода файла и имеет следующие параметры:

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

Обратите внимание, что последняя запись ... значение в одинарных кавычках обрабатывается как команда для запуска, и результат этой команды - то, что анализирует FOR.

Возможно, у вас есть команда / исполняемый файл 'a' на одном компьютере, а на другом нет?

Вы должны использовать флаг '/ F' только в том случае, если вам требуется поведение, которое обеспечивает '/ F'.

0 голосов
/ 30 августа 2011

Добавьте парантез "(", например:

for %q in ('a') do (

Он подскажет вам «Еще?» в следующих строках, пока вы не решите закрыть блок for с ")"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...