如何在windows .bat脚本中检查32位Program Files文件夹的位置

Are*_*rek 5 windows location file batch-file

我想编写.bat脚本,它适用于所有类型的Windows,无论是32位还是64位.

在这个脚本中我想运行一些file.exe.该文件位于32位系统下的C:\ Program Files \或x64系统下的C:\ Program文件夹(x86)\中.我可以写:

"64位系统下的%ProgramFiles(x86)%\ file.exe"或32位系统下的"%ProgramFiles%\ file.exe",但我想让脚本具有通用性.有没有办法普遍确定这条道路?

Ale*_* K. 6

你可以检查它的存在并存储路径;

@echo off & setLocal enabledelayedexpansion
if exist "C:\Program Files\app1.exe" (
 set PPATH="C:\Program Files\"
) else (
 set PPATH="C:\Program Files(x86)\"
)

start "" %PPATH%app1.exe
start "" %PPATH%app2.exe
start "" %PPATH%app3.exe
Run Code Online (Sandbox Code Playgroud)


小智 5

VBS脚本:

 set wshShell = createObject("WScript.Shell")  
    ''-----------------------------------    
    ''Get 32-bit program files path  
    ''-----------------  
    OsType = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")    
    If OsType = "x86" then  
            '''wscript.echo "Windows 32bit system detected"  
            strProgramFiles = wshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")  
    elseif OsType = "AMD64" then  
            '''wscript.echo "Windows 64bit system detected"  
            strProgramFiles = wshShell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")  
    end if  
Run Code Online (Sandbox Code Playgroud)