场景:我通过SCCM部署软件包,有时,它们运行CMD文件,一旦到达机器就控制安装。 对于设置为在x86和x64计算机中运行的程序包,条件如下:
for /f "Tokens=*" %%i in ('CD') do set CurDir=%%i
cd "%CurDir%"
If Exist "C:\program files (x86)" goto X64
Msiexec /i "x86.msi"
:X64
Msiexec /i "x64.msi"
但是由于我们的环境发生了一些变化,这还不够。我找到了一种通过vbs检索此信息的方法(我们也在这里使用),但是我在传递该值时遇到了麻烦
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
msg = objOperatingSystem.OSArchitecture
Next
无论如何都要"翻译"那么我可以条件化CMD为每个平台运行正确的命令吗?
提前致谢!
答案 0 :(得分:2)
试试这个:
@echo off
wmic cpu get addresswidth | find "32" >nul && echo system 32 bit || echo system 64 bit
pause