я получил первый эмпирический ответ:.
for /f %%s in (version.txt) do ...
работает просто отлично, на каждом компьютере
кажется for /f
работает с именем файла, а не с какой-либо д Команда os напоминает «тип имя_файла».
Однако, это не верно для всего компьютера моего клиента (на некоторых, «тип файла» отлично работает)
Если вы хотите 15 (легко?) Баллов ;-), Вы можете оставить ответ вопрос:
Почему «for/f» иногда не работает ни с чем другим, кроме имени файла. И почему он просто закрывает сессию DOS?
Edit: (!) Через 3 года, barlop столкнулись с подобной ситуацией, подробно описанную в вопросе "for /f
closes cmd prompt immediately?". Его заключение:
COMSPEC
было получить перечисленные при выполнении SET
+ ENTER.
Итак, я открыл окно переменных окружения и увидел, что COMSPEC
не был указан под пользовательскими или системными переменными. Я добавил его в System Variables, запустил командную строку и, похоже, работает нормально.
Этот thread on ss64 forum, упомянутый Andriy M в своем ответе на вопрос о барлопе, содержит подробности.
Обстрел из в «for
» петли для завершения «dir
» (или любой другой команды, вы попросили заполнить) требует ComSpec
быть установлен для того, чтобы перезагрузить cmd
окно.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec=
%SystemRoot%\system32\cmd.exe
Благодарим за редактирование, Оли: Я хотел пометить этот «скрипт» вопроса, но автозаполнение на теге SO обмануло меня;) – VonC 2008-11-04 09:42:43