Windows 命令提示符的功能历史

Windows 命令提示符的功能历史

我正在准备一个 Windows BAT 脚本,它使用了一些新功能,例如setlocalFOR 循环中的一组命令,例如

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

我想知道各个功能何时推出。这样我就可以知道这样的 BAT 脚本是否与 Windows XP、Windows 7 或 Windows 8.1 兼容。

编辑:

FOR 命令相当古老。我对使用圆括号的命令分组语法感到好奇。

但还有其他功能。例如,在 BAT 脚本中调用函数。询问每个单独的功能没有意义。这就是我询问历史记录的原因。

答案1

Setlocal/endlocal 和 FOR 语法至少从 1996 年就已经存在。Windows NT 4(1996 年 7 月)包含了它们以及我们今天所看到的大多数(如果不是全部)语法。从那时起,最大的变化来自 Windows 2000(1999 年 12 月)。仅举一个例子:当时 setlocal 有一对额外的开关可用:ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION。在 NT4 中运行的脚本应该可以在此后的每个 NT 系列操作系统中运行(2000、XP、Vista、7、8、8.1 和 Windows 10,以及 Server 2003 到 2016)。Rob van der Woude 的脚本页面包含一个命令列表,其中包括有关它们首次出现的操作系统的信息。您可以使用它来确保向后兼容性。

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

答案2

微软没有提到命令的历史记录,所以我转向回溯机器并搜索保存文档的日期。

Wayback Machine 似乎对微软链接的处理效果不佳,所以我搜索了ss64.com 文档

对于该setlocal命令,最早的页面实例 设置本地 于 2003 年 2 月被 Wayback Machine 录制。

对于该FOR命令,最早的页面实例 为了 2003 年 2 月也被记录在 Wayback Machine 上。

这些功能似乎至少可以追溯到 Windows XP 和 Windows Server 2003。

我在 XP 虚拟机中测试了这两个命令,它们运行完美。我无法访问早期版本的 Windows,但我认为 XP 足以满足您的目的。

相关内容