0

如何创建一个批处理文件来判断已安装的程序 (.exe) 是 32 位还是 64 位?

有时您可以根据 program.exe 文件所在的文件夹来判断。

如果安装的程序是 32 位的,它将显示在 Program Files (x86) 文件夹中。如果文件是 64 位,它将显示在 Program Files 文件夹中。

但情况并非总是如此......

例如 Google Chrome 总是显示在 Program Files x86

程序文件 x86 中的 Chrome

但是我电脑上的版本是64位的:

Chrome 实际上是 64 位的

例如,我如何引用 chrome.exe 并让批处理告诉我它是 64 位还是 32 位?

4

1 回答 1

0

这个脚本可以解决问题: 使用 PowerShell 识别 16 位、32 位和 64 位可执行文件

如果您从 powershell 中调用它:“Source”(又名)运行一次脚本以将函数放入内存,那么您可以使用它..

    . .\Get-ExecutableType.ps1 #sources the script
    Get-ExecutableType -Path C:\Windows\System32\notepad.exe #runs the function

要从批处理文件中“简单地”调用此脚本,请将其添加到脚本底部最后一个花括号之后:

    Get-ExecutableType -Path $args[0]

并这样称呼它:

powershell -command "& .\Get-ExecutableType.ps1 X:\Your.exe"

其他选项:

您还可以使用添加的“批处理行”从 powershell 调用它,而无需先获取文件。

您还可以使用愚蠢的 powershell 语法来调用函数,而无需先获取文件。powershell.exe -c "& { [script_file] [params] ; [function_name] }"

于 2019-03-28T17:32:20.513 回答