Como escrever o caminho de um executável de 32 bits na pasta Arquivos de Programas do Windows, independentemente da versão do Windows?

2

Eu quero escrever algo como

% ProgramFiles (x86)% \ algumprograma \ algumprograma.exe

Isso funcionaria no Windows 32 e nas versões de 64 bits

Mas:

  1. %ProgramFiles% aponta para a pasta de arquivos de programas de 32 bits apenas no Windows de 32 bits
  2. %ProgramFiles(x86)% aponta para a pasta de arquivos de programas de 32 bits apenas no Windows de 64 bits (não existe no Windows de 32 bits)

Existe alguma variável de ambiente do Windows que sempre aponta para a pasta de arquivos de programa de 32 bits, independentemente da versão do Windows?

    
por Jader Dias 01.09.2010 / 15:16

2 respostas

3

Você sempre pode adicionar %ProgramFiles(x86)% às plataformas Windows de 32 bits. Você pode usar uma linha de comando simples para adicioná-lo:

Set ProgramFiles(x86) = "C:\Program Files"

Então você tem consistência em todas as plataformas.

Editar:

Desde que você me disse para o que é, eu faria algo assim para suas instruções:

1 - Change to the directory for the program. 

2 - open a command prompt 

3a - type "cd %programfiles(x86)%" 

3b - If  you receive the error "The system cannot find the path specified", 
     go to step 3c.  Otherwise go to 4. 

3c - type "cd %programfiles%" 

4 - Other stuff
    
por 01.09.2010 / 15:19
0

Minha primeira solução é:

  if "%ProgramFiles(x86)%" == "" (
    echo Win x86
    set PRGFILES=%ProgramFiles%
  ) else (
    echo Win x64
    set PRGFILES=%ProgramFiles(x86)%
  )
  echo 1: %PRGFILES%

A solução acima causou alguns problemas no primeiro teste. Parecia que o caractere ")" em% ProgramFiles (x86)% causou o final de if. Portanto, solução secundária:

  if "%ProgramFiles(x86)%" == "" set PRGFILES=%ProgramFiles%
  if not "%ProgramFiles(x86)%" == "" set PRGFILES=%ProgramFiles(x86)%
  echo 2: %PRGFILES%

Testado apenas no Win 7 x64 e Win XP (x86).

De acordo com o meu teste, é melhor usar a variável de ambiente temporária personalizada e não usar diretamente as variáveis dos arquivos de programa (problemas acima mencionados).

    
por 15.04.2014 / 14:10

Tags