卓尔高考网

pnputil.exe无法识别为内部或外部命令[关闭]

篇首语:本文由小编为大家整理,主要介绍了pnputil.exe无法识别为内部或外部命令[关闭]相关的知识,希望对你有一定的参考价值。

当我通过命令提示符执行命令来安装驱动程序时:

cd C:WindowsSystem32pnputil.exe -i -a "C:UsersDesktopDriversIPEnabled_001.inf"

它工作正常。

But if i execute the command in Installanywhere tool It showing the error message:pnputil.exe is not recognized as an internal or external command

那么你能否告诉它为什么显示错误信息以及如何重新发送错误?提前致谢。

还请建议安装inf驱动程序的替代方法

答案

pnputil.exe在64位Windows上仅作为64位应用程序提供,这意味着有%SystemRoot%System32pnputil.exe(x64)但没有%SystemRoot%SysWOW64pnputil.exe(x86)。

哪个目录成为使用cd C:WindowsSystem32的当前目录取决于启动Windows命令解释器cmd.exe的应用程序架构上的64位Windows。 64位应用程序真正启动%SystemRoot%System32cmd.exe,但32位应用程序启动%SystemRoot%SysWOW64cmd.exe。原因是Windows File System Redirector将对%SystemRoot%System32的任何文件访问重定向到Windows x64上用于x86应用程序的%SystemRoot%SysWOW64目录。

最好在执行此任务之前检查此文件是否存在,此任务运行pnputil.exe仅存在于Windows体系结构上独立的任何Windows上的目录%SystemRoot%System32中。

if exist %SystemRoot%System32pnputil.exe (    set "SystemPath=%SystemRoot%System32") else if exist %SystemRoot%Sysnativepnputil.exe (    set "SystemPath=%SystemRoot%Sysnative") else (    echo ERROR: Cannot find pnputil.exe to install the driver.    echo/    pause    goto :EOF)%SystemPath%pnputil.exe -i -a "%USERPROFILE%DesktopDriversIPEnabled_001.inf"

第一个IF条件适用于32位Windows上的32位应用程序和64位Windows上的64位应用程序。

第二个IF条件适用于64位Windows上的32位应用程序。 Sysnative是Windows x64上x86应用程序的特殊重定向器。 x64应用程序不存在Sysnative。 Sysnative不是目录或符号链接或硬链接。因此,不可能使用if exist %SystemRoot%Sysnative,因为这种情况永远不会成立。需要检查重定向目录中是否存在文件,例如使用if exist %SystemRoot%Sysnative*,这仅适用于在64位Windows上运行当前32位cmd.exe

例如,在没有pnputil.exe的Windows XP上,最终的ELSE分支是正确的。

但是,建议不要使用pnputil.exe来安装驱动程序。微软免费发布Driver Package Installer DPInst。有一个32位(dpinst32.exe)和一个64位版本(dpinst64.exe)。使用驱动程序包安装程序可以非常轻松地安装一个或多个驱动程序。

让我们看一下硬件生产公司如何提供适当的驱动程序,如英特尔®使用Driver Package Installer安装驱动程序。

驱动程序安装程序包中通常有一个目录结构,如:

  • 他激动起来
  • Vista64上
  • 它被弯曲了
  • WIN7-64
  • XPx86
  • XPx64

或者像以下目录结构:

  • VIEW8664位
  • WIN78664位
  • XP8664位

目录结构因安装程序包到安装程序包而异,但这并不重要,通常很容易看出哪个驱动程序文件在哪个目录中适用于哪个版本的Windows(包括体系结构)。

另外还有dpinst32.exedpinst64.exe存储在带有驱动程序文件的所有子目录的父目录中,或者只存储在包含驱动程序文件的目录中的两个驱动程序目录中。

让我们使驱动程序安装示例非常简单,并假设程序包中只有两个驱动程序文件,一个用于Windows x86,另一个用于Windows x64。

  • WIN-32dpinst32.exe*。猫* .DLL* .inf的* .sys
  • WIN-64dpinst64.exe*。猫* .DLL* .inf的* .sys

通过由32位或64位WIN-32执行的简单批处理文件在64位Windows上的WIN-64中在32位Windows和64位驱动程序上安装32位驱动程序的代码很容易

cmd.exe

环境变量set "WINARCH=64"if "%ProgramFiles(x86)%" == "" set "WINARCH=32"cd WIN-%WINARCH%dpinst%WINARCH%.exe仅存在于Windows x64上,因此很容易确定Windows的体系结构,另请参阅ProgramFiles(x86)。处理器的体系结构并不重要,因为在具有AMD 64位(兼容)处理器的PC上可以安装32位Windows x86。

WOW64 Implementation Details和dpinst32.exe开始没有任何选项只需安装当前目录中找到的所有驱动程序。

以上是关于pnputil.exe无法识别为内部或外部命令[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

您可能还会对下面的文章感兴趣: