Для цикла в Windows 3.1 DOS - PullRequest
       21

Для цикла в Windows 3.1 DOS

7 голосов
/ 20 декабря 2009

я написал пакетный скрипт, как показано ниже

for -f %%a in ('dir /b') do command

Этот скрипт работает в Windows XP, но теперь я хочу запустить его в Windows 3.11.

Это дает синтаксическую ошибку; похоже, что DOS в Windows 3.1 не поддерживает `for -f %% a in ('command').

Можете ли вы предложить, какую команду можно использовать в Windows 3.1 для достижения эквивалентной функциональности?

Ответы [ 2 ]

8 голосов
/ 20 декабря 2009

В DOS 5.0 нельзя использовать команду внутри части IN (...) оператора. Что вы можете сделать, так это:

FOR -F %%A IN (*.txt) DO command

, который будет выполнять command для каждого файла с расширением txt. Другими словами, команда dir является неявной.

Я получил эту информацию из DOS Джеффа Просизе 5. В то время, когда это было необходимо, сейчас довольно пыльно. Никогда не знал, что смогу использовать его снова; -)

РЕДАКТИРОВАТЬ: оказалось, что косвенное (см. Историю) не было необходимости. Вышеприведенное утверждение - это все, что вам нужно. Т.е., каждый файл работает и печатает каждый файл:

FOR -F %%A IN (*.txt) DO TYPE %%A
1 голос
/ 20 декабря 2009

Вы правы; этот синтаксис не поддерживается Windows 3.1.
Он был добавлен cmd.exe в Windows NT.

Не думаю, что вы найдете эквивалентную команду, включенную в Windows 3.1.
РЕДАКТИРОВАТЬ : я был не прав; см. ответ Авеля.

Почему вы используете такую ​​доисторическую ОС?

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