Posso fazer um script em lote executar um programa de 32 ou 64 bits de acordo?

2

Eu quero fazer um script de lote ou de comando que possa encontrar o programa adequado para usar de acordo com a arquitetura do processador de computadores local para programas de 32 e 64 bits.

Um programa com o qual gostaria de tentar é o WinRAR . Eu quero colocar a versão de 64 bits em uma pasta chamada "x64" e o 32-bit em uma pasta rotulada "x86" com o script além dessas pastas.

Tenho notado que alguns programas, como Cheat Engine , tem uma versão de 32 e 64 bits que também inclui um executável que pode fazer isso.

Atualmente, meu único lead é a variável %process_architecture% . Este foi o script que fiz usando o script original do @ dbenham :

echo %processor_architecture%%processor_architew6432% | findstr 64 >nul && set "prog=x64\WinRAR x64.exe" || set "prog=x86\WinRAR x86.exe"
    
por Mr. Mendelli 09.07.2017 / 10:25

1 resposta

2

Como posso encontrar o programa adequado para usar de acordo com a arquitetura do processador?

This was the script I used:

echo %processor_architecture%%processor_architew6432% | findstr 64 >nul && set "prog=x64\WinRAR x64.exe" || set "prog=x86\WinRAR x86.exe"

Notas:

Eu normalmente uso wmic OS get OSArchitecture para obter a nitidez do SO.

O seguinte arquivo em lote deve começar:

@echo off
setlocal enabledelayedexpansion
for /f "usebackq skip=1 tokens=*" %%i in ('wmic OS get OSArchitecture ^| findstr /r /v "^$"') do (
  set "_bits=%%i"
  rem remove spaces
  set "_bits=!_bits: =!"
  )
if "%_bits%" EQU "64-bit" (
  rem 64bit OS
  set "prog=x64\WinRAR x64.exe"
  ) else (
  rem 32bit OS
  set "prog=x86\WinRAR x86.exe"
  )
rem do something with %prog%
call %prog%
endlocal

Leitura Adicional

por 09.07.2017 / 11:09