2013-07-16 16 views
27

Cosa succede quando utilizzo la variabile di ambiente %PROGRAMFILES(x86)% su un sistema operativo Windows a 32 bit (ovvero versioni precedenti di Windows come Windows XP, Vista)?Utilizzo% PROGRAMFILES (x86)% su sistema operativo Windows 32 bit

Spero che si risolva semplicemente in: C:/Program Files. Succederà?

+0

'% PROGRAMFILES%' verrà risolto nella cartella per i programmi a 64 bit, ma il Non c'è niente che ti impedisca di crearne uno [% PROGRAMFILES (x86)%] (http://stackoverflow.com/questions/17312348/how-do-i-set-windows-environment-variables-permanently) variabile – Gary

risposta

36

Secondo to this la variabile di ambiente %PROGRAMFILES(x86)% è disponibile solo su sistemi a 64 bit.

Tuttavia, se si utilizza un sistema a 64 bit e si utilizza %PROGRAMFILES%, il risultato dipende dal fatto che il processo che richiede la variabile di ambiente sia a 32 o 64 bit.

Quindi da un processo a 64 bit su un sistema a 64 bit si otterrebbe C:\Program Files, da un processo a 32 bit su un sistema a 64 bit si otterrebbe C:\Program Files (x86) e da un processo a 32 bit su un 32- sistema bit si otterrebbe C:\Program Files.

Se ciò non aiuta, è possibile commentare o modificare la domanda originale per rendere specifico ciò che si sta tentando di fare. Allo stato attuale, la risposta alla tua domanda è "No".

+0

Grazie, funziona come dici che funziona. Un avvertimento alle persone anche se la voce di Wikipedia è un po 'fuorviante. –

+4

Che ne dici di "si desidera individuare un programma specifico a 32 bit utilizzando un file batch condiviso tra computer a 32 e 64 bit". Per fare ciò, è necessaria una variabile che valuti i file c: \ program su un sistema a 32 bit o c: \ program files (x86) su un sistema a 64 bit. vale a dire% ProgramW6432% – OJW

+0

Quindi, la domanda è questa: come accedere al percorso a 64 bit dei file di programma, da un software a 32 bit in esecuzione su un sistema a 64 bit? –

-13

Se si utilizza %programfiles% su un computer/laptop a 32 bit, verrà aperto C:\Program Files.

Se si utilizza %programfiles% su un computer/laptop a 64 bit, verrà aperto C:\Program Files.

Se si dispone di un programma a 64 bit installato su un computer/laptop a 32 bit, verrà installato in una nuova cartella denominata Program Files (x64), che si trova nell'unità "C". Nel qual caso devi usare .

Se si dispone di un programma a 32 bit installato su un computer/laptop a 64 bit, verrà installato in una nuova cartella denominata Program Files (x86), che si trova nell'unità "C". Nel qual caso devi usare %programfiles(x86).

+1

Sto indovinando una parte del motivo per cui le persone downvoted sono dovute alla frase 'Se hai un programma a 64 bit installato su un computer/laptop a 32 bit ', che ovviamente è così ovviamente impossibile che sia privo di senso. –

2

Keith Hill risposto a questa domanda here, sintesi:

${env:ProgramFiles(x86)} non è definito su una macchina a 32 bit

Se hai sempre voglia di mettere/ottenere i dati da/directory X 86, quindi è possibile utilizzare questo codice per determinare i percorsi dei file:

$file = "\file" 
if ("${Env:ProgramFiles(x86)}") 
{ 
    $fullPath = "${Env:ProgramFiles(x86)}\$file" 
} 
else 
{ 
    $fullPath = "${Env:ProgramFiles}\$file" 
} 
Problemi correlati