я имею, записал сценарий пакетной обработки как ниже
for -f %%a in ('dir /b') do command
Этот сценарий работает в Windows XP, но теперь я хочу выполнить его в Windows 3.11.
Это дает синтаксическую ошибку; кажется, что Windows 3.1's DOS не поддерживает 'для-f %% в ('команде').
Можно ли предложить, какую команду я могу использовать в Windows 3.1 для достижения эквивалентной функциональности?
В DOS 5.0 вы не можете использовать команду внутри IN (...)
части оператора. Однако вы можете сделать следующее:
FOR -F %%A IN (*.txt) DO command
, который будет выполнять команду
для каждого файла с расширением txt. Другими словами, команда dir
является неявной.
Я получил эту информацию из DOS 5 Джеффа Просиза. В то время незаменимый, теперь довольно пыльный. Никогда не знал, что когда-нибудь воспользуюсь им снова; -)
РЕДАКТИРОВАТЬ: оказалось, что в косвенном обращении (см. Историю) нет необходимости. Приведенное выше утверждение - это все, что вам нужно. То есть следующее работает и распечатывает каждый файл:
FOR -F %%A IN (*.txt) DO TYPE %%A
Вы правы; этот синтаксис не поддерживается Windows 3.1.
Он был добавлен с помощью cmd.exe
в Windows NT.
Не думаю, что вы найдете эквивалентную команду, включенную в Windows 3.1.
EDIT : Я был неправ; см. ответ Абеля.
Почему вы используете такую доисторическую ОС?