【发布时间】:2017-06-09 13:50:45
【问题描述】:
我有一个脚本,我正在尝试创建一个函数来根据系统版本执行一些命令。
要知道我使用哪个版本的 Windows:
systeminfo | Findstr / B / C: "OS Name" / C: "OS Version"> version.txt
set version = <version.txt
del version.txt
echo% version% #(variable test, ok)
我需要以下函数(或多或少像我在 Linux 批处理中那样):
if [echo% version% | Findstr / B / C: "Windows XP"> "0"] {
echo "Windows XP"
}
if [echo% version% | Findstr / B / C: "Windows 7"> "0"] {
echo "Windows 7"
}
if [echo% version% | Findstr / B / C: "Windows 8"> "0"] {
echo "Windows 8"
}
if [echo% version% | Findstr / B / C: "Windows 10"> "0"] {
echo "Windows 10"
}
【问题讨论】:
-
网络上有成千上万个批处理文件示例,用于识别 Windows 版本。 (我还建议您的将是最慢的,因为 systeminfo 命令需要一些时间才能完成)。也就是说,通常只有在您尝试控制/限制命令时才需要识别操作系统。一旦确定了操作系统,请您向我们提供您的意图,以便我们提出最合适的方法。
-
我有一个脚本可以自动安装一些软件,有些软件只能在确定的Windows版本中安装。
-
任何体面的软件安装程序都应该已经能够确定是否满足系统要求。一个 64 位程序应该不能安装在 32 位操作系统上,一个至少需要 Windows 8 的软件应该不能安装在 Windows Vista 上等等......需要做的是确定版本是否大于或等于您的最低版本,而不是确定产品名称。顺便说一句,
ver命令获取的是 cmd.exe 版本而不是操作系统版本。
标签: windows batch-file command-line command-prompt prompt