【问题标题】:Determine Intel or AMD through Windows batch file通过 Windows 批处理文件确定 Intel 或 AMD
【发布时间】:2013-01-25 01:44:04
【问题描述】:

有没有办法通过 Windows 命令行确定机器运行的是 Intel 还是 AMD 处理器(因此可以将它放在批处理文件中)?我正在尝试为某些驱动程序制作安装脚本,并决定使用“Devcon”是最好的方法,但它需要正确的架构才能运行。

此外,除了检查“Program Files (x86)”是否存在之外,是否有更好的方法来确定计算机运行的是 32 位还是 64 位版本的 Windows?这就是我目前采取的方法。

我对编程或脚本并不陌生,但我对 Windows CMD 很陌生(我主要是 Linux 用户)。

谢谢各位!如果您需要,我可以提供更多信息。

【问题讨论】:

  • 您为什么要尝试从脚本安装驱动程序?真正的安装程序将是一个更好的解决方案(无论如何,驱动程序安装在大多数当前的 Windows 系统上都可能会失败,因为您无法签署脚本文件)。安装程序将允许您根据处理器、体系结构和操作系统版本安装适当的文件。
  • 制作“真正的安装程序”的最佳方法是什么? Visual Studio 安装程序创建者?我绝对对想法持开放态度。是的,窗口显示“驱动程序未签名,继续吗?”会弹出。对不起,我对此缺乏了解。你可以给我指出一个来源,我可以自己学习(并做出答案,我会给你绿色检查)。
  • 有免费的安装构建器(或 VS 安装器创建器)。例如,Inno Setup 是免费的,并且非常可扩展。在此站点中搜索“Windows 安装程序”或“[windows] 安装程序”,因为有很多关于该主题的帖子。
  • 您可以从讨论 Inno Setup 与 Wix 的 [此链接] 开始。右侧的“相关”列表中还有其他链接。 :-)
  • 您的链接无效。也许添加一个包含所有信息的“答案”,以便正确记录?谢谢!

标签: windows architecture batch-file command cmd


【解决方案1】:

我认为下面的批处理文件可以获得您想要的信息:

@echo off
for /F "skip=1 delims=" %%a in ('wmic cpu get name') do set cpu=%%a
for /F "skip=1 delims=^|" %%a in ('wmic os get name') do set os=%%a
echo CPU: "%cpu%
echo OS:  "%os%"

例如,在我的(非常旧的)电脑上,它显示:

CPU: "Intel(R) Pentium(R) M processor 1.20GHz
OS:  "Microsoft Windows XP Professional"

希望对你有帮助。

安东尼奥

【讨论】:

  • 这在 Windows 7 64 位中返回 NULL。
【解决方案2】:

【讨论】:

  • 看起来这可能是一个不错的选择,但从您的来源来看,它似乎显示了一大堆不必要的信息(并且难以解析简单的 IF 语句)。有没有办法减少输出(或解析它)?在 Linux 中,我显然会通过一些正则表达式或其他东西来运行它,但我从未将 Windows 用于如此复杂的事情,所以我什至不知道它是否会工作。
【解决方案3】:

这是我的解决方案,虽然它只检查架构:

for /f "tokens=* delims=AMDx" %%a in ('"echo %processor_architecture%"') do (set arc=%%a & echo %arc%)

它返回 86 或 64,并将变量“arc”设置为等于各自的架构...

我发现这对于将 Nirsoft 工具集成到我的脚本中特别有用,因为其中许多都是为 86 或 64 构建的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2011-05-15
    • 2012-08-17
    • 2012-12-13
    • 2012-03-18
    相关资源
    最近更新 更多