2013-07-16 11 views
27

Co się dzieje, gdy używam zmiennej środowiskowej %PROGRAMFILES(x86)% w systemie operacyjnym Windows 32-bitowym (tj. Starsze wersje systemu Windows, takie jak Windows XP, Vista)?Używanie% PROGRAMFILES (x86)% w systemie operacyjnym Windows 32bit

Mam nadzieję, że rozwiąże to po prostu: C:/Program Files. Czy to się stanie?

+0

'% PROGRAMFILES%' rozwiąże folder dla programów 64-bitowych, ale Nic cię nie powstrzyma przed zrobieniem własnych [% PROGRAMFILES (x86)%] (http://stackoverflow.com/questions/17312348/how-do-i-set-windows-environment-zmiennych-czasowo) zmienna – Gary

Odpowiedz

36

Zgodnie z to this zmienna środowiskowa %PROGRAMFILES(x86)% jest dostępna tylko w systemach 64-bitowych.

Jeśli jednak używasz systemu 64-bitowego i używasz %PROGRAMFILES%, wynik zależy od tego, czy proces żądający zmiennej środowiskowej jest 32-bitowy czy 64-bitowy.

Tak więc od 64-bitowego procesu w systemie 64-bitowym otrzymasz C:\Program Files, z 32-bitowego procesu w 64-bitowym systemie otrzymasz C:\Program Files (x86), a od 32-bitowego procesu na 32- system bitowy dostaniesz C:\Program Files.

Jeśli to nie pomoże, być może będziesz mógł skomentować lub zmodyfikować swoje oryginalne pytanie, aby sprecyzować, co chcesz zrobić. W obecnej formie odpowiedź na twoje pytanie brzmi "Nie".

+0

Dzięki, To działa tak, jak mówisz, że to działa. Ostrzeżenie dla ludzi, że wpis w Wikipedii jest nieco mylący. –

+4

Co powiesz na "chcesz znaleźć konkretny program 32-bitowy przy użyciu pliku wsadowego, który jest współdzielony między komputerami 32- i 64-bitowymi". Aby to zrobić, potrzebna jest zmienna, która ocenia c: \ pliki programu w systemie 32-bitowym lub c: \ program files (x86) w systemie 64-bitowym. tj.% ProgramW6432% – OJW

+0

Pytanie brzmi następująco: Jak uzyskać dostęp do 64-bitowej ścieżki plików programu z 32-bitowego oprogramowania działającego w systemie 64-bitowym? –

-13

Jeśli użyjesz %programfiles% na 32-bitowym komputerze/laptopie, otworzy się C:\Program Files.

Jeśli używasz %programfiles% na 64-bitowym komputerze/laptopie, otworzy się C:\Program Files.

Jeśli program 64-bitowy jest zainstalowany na 32-bitowym komputerze/laptopie, zostanie zainstalowany w nowym folderze o nazwie Program Files (x64), który znajduje się na dysku "C". W takim przypadku musisz użyć .

Jeśli program 32-bitowy jest zainstalowany na 64-bitowym komputerze/laptopie, zostanie zainstalowany w nowym folderze o nazwie Program Files (x86), który znajduje się na dysku "C". W takim przypadku musisz użyć %programfiles(x86).

+1

Zgaduję, że powodem, dla którego ludzie przeszli na dół, jest zdanie "Jeśli masz zainstalowany 64-bitowy program na 32-bitowym komputerze/laptopie", co oczywiście jest tak oczywiste, że nie ma sensu. –

2

Keith Hill odpowiedział na to pytanie here, podsumowanie:

${env:ProgramFiles(x86)} nie jest zdefiniowana na komputerze 32-bitowym

Jeśli zawsze chcesz umieścić/pobierania danych do/z katalogu x86, a następnie możesz użyć tego kodu do określenia ścieżek plików: