Я готовлю сценарий Windows BAT, который использует некоторые новые функции, такие как setlocal и группы команд в циклах FOR, таких как

for %%a in (a b c) do (
   del %%a.bak
   ren %%.a %%a.bak
)

Я хотел бы знать, когда были введены отдельные функции. Таким образом, я мог видеть, совместим ли такой сценарий BAT, например, с Windows XP, Windows 7 или Windows 8.1.

Редактировать:

Команда FOR довольно старая. Меня интересует синтаксис группировки команд с круглыми скобками.

Но есть и другие особенности. например, вызов функции внутри скрипта BAT. Нет смысла просить каждую отдельную функцию. Вот почему я попросил историю.

2 ответа2

1

Setlocal/endlocal и синтаксис FOR присутствуют как минимум с 1996 года. Windows NT 4 (июль 1996 г.) включала их и большинство, если не все, что мы видим сегодня. Самые большие изменения с тех пор произошли с Windows 2000 (декабрь 1999). Только один пример: в это время для setlocal доступна дополнительная пара переключателей: ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION. Сценарий, который запускается в NT4, должен запускаться в каждой ОС семейства NT начиная с (2000, XP, Vista, 7, 8, 8.1 и Windows 10, а также Server 2003 до 2016). Страницы сценариев Роба ван дер Вуде включают список команд, включая информацию о том, в какой ОС они впервые появились. Вы можете использовать это для обеспечения обратной совместимости.

http://www.robvanderwoude.com/batchcommands.php

0

Microsoft ничего не говорит об истории команд, поэтому я обратился к Wayback Machine и искал даты сохраненной документации.

Wayback Machine, похоже, плохо работала со ссылками Microsoft, поэтому я искал в документации ss64.com.

Для команды setlocal самый ранний экземпляр страницы для setlocal был записан на Wayback Machine в феврале 2003 года.

Для команды FOR самый ранний экземпляр страницы для FOR был также записан на Wayback Machine в феврале 2003 года.

Эти функции, по-видимому, датируются, по крайней мере, Windows XP и Windows Server 2003.

Я протестировал обе команды на виртуальной машине XP, и они работали безупречно. У меня нет доступа к более ранним версиям Windows, но я думаю, что XP достаточно рано для ваших целей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .