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

я имею, записал сценарий пакетной обработки как ниже

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

Этот сценарий работает в Windows XP, но теперь я хочу выполнить его в Windows 3.11.

Это дает синтаксическую ошибку; кажется, что Windows 3.1's DOS не поддерживает 'для-f %% в ('команде').

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

7
задан SLaks 20 December 2009 в 17:30
поделиться

2 ответа

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

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

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

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

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

FOR -F %%A IN (*.txt) DO TYPE %%A
8
ответ дан 7 December 2019 в 03:16
поделиться

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

Не думаю, что вы найдете эквивалентную команду, включенную в Windows 3.1.
EDIT : Я был неправ; см. ответ Абеля.

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

1
ответ дан 7 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: