为什么在批处理脚本中检查Windows版本?

为什么在批处理脚本中检查Windows版本?,windows,batch-file,operating-system,Windows,Batch File,Operating System,我有一个批处理脚本,我想知道为什么要检查操作系统的版本?批处理语法与Windows 95/98是否存在差异 我使用Windows 7,echo%OS%是Windows\u NT为什么?setlocal在非NT系统上不起作用,就这么简单 这并不容易找到,但您会看到,它在NT4.0、WindowsXP等的命令处理器文档中,而在95、98等版本(使用MS-DOS命令处理器而不是NT shell)中缺失了它 Windows7是一个WindowsNT系统,就像Windows2000、XP或WindowsS

我有一个批处理脚本,我想知道为什么要检查操作系统的版本?批处理语法与Windows 95/98是否存在差异


我使用Windows 7,
echo%OS%
Windows\u NT
为什么?

setlocal
在非NT系统上不起作用,就这么简单

这并不容易找到,但您会看到,它在NT4.0、WindowsXP等的命令处理器文档中,而在95、98等版本(使用MS-DOS命令处理器而不是NT shell)中缺失了它


Windows7是一个WindowsNT系统,就像Windows2000、XP或WindowsServer2008一样。版本号实际上是该行的延续-Windows NT 4.0之后是2000(5.0)、XP(5.1+)、Vista(6.0)、7(6.1)等。Windows 7是NT行的延续。所有的现代Windows都是:)最后一个非NT版本是98 SE/ME或类似的版本,自Win 2000/XP以来,一切都是NT。也许除了现在的Windows RT之外。@Luaan最后一个非NT窗口是Windows MEOK。这回答了我问题的第二部分。但是第一个呢?@LưuVĩnhPhúc我想我们决定忘掉关于我的一切。但是哦,好吧,我的错误是:Dok,但是NT和非NT版本的shell语言有区别吗?相关问题:和(由Google发现:“cmd vs command”)
if "%OS%"=="Windows_NT" setlocal