2013-07-16 58 views
27

Điều gì xảy ra khi tôi sử dụng biến môi trường %PROGRAMFILES(x86)% trên hệ điều hành Windows 32 bit (ví dụ: các phiên bản Windows cũ hơn như Windows XP, Vista)?Sử dụng% PROGRAMFILES (x86)% trên hệ điều hành Windows 32bit

Tôi hy vọng rằng nó sẽ chỉ giải quyết thành: C:/Program Files. Điều này có xảy ra không?

+0

'% PROGRAMFILES%' sẽ giải quyết thư mục cho chương trình 64 bit, nhưng không có gì ngăn cản bạn tạo [% PROGRAMFILES (x86)%] (http://stackoverflow.com/questions/17312348/how-do-i-set-windows-environment-variables-permanently) biến – Gary

Trả lời

36

Theo to this biến môi trường %PROGRAMFILES(x86)% chỉ khả dụng trên hệ thống 64 bit.

Tuy nhiên, nếu bạn sử dụng hệ thống 64 bit và sử dụng %PROGRAMFILES%, kết quả bạn nhận được phụ thuộc vào quá trình yêu cầu biến môi trường là 32 bit hay 64 bit. Do đó, từ quy trình 64 bit trên hệ thống 64 bit, bạn sẽ nhận được C:\Program Files, từ quy trình 32 bit trên hệ thống 64 bit, bạn sẽ nhận được C:\Program Files (x86) và từ quy trình 32 bit trên 32- hệ thống bit bạn sẽ nhận được C:\Program Files.

Nếu điều này không hiệu quả, có lẽ bạn có thể nhận xét hoặc chỉnh sửa câu hỏi ban đầu của bạn để làm cho nó cụ thể những gì bạn đang cố gắng làm. Vì nó hiện đang đứng, câu trả lời cho câu hỏi của bạn là "Không".

+0

Cảm ơn, nó hoạt động như thế nào bạn nói nó hoạt động. Một cảnh báo cho người mặc dù rằng mục Wikipedia là một chút sai lầm. –

+4

Làm thế nào về "bạn muốn xác định vị trí một chương trình cụ thể 32-bit bằng cách sử dụng một tập tin thực thi được chia sẻ giữa 32 và 64 bit máy tính". Để thực hiện điều này, bạn sẽ cần một biến để đánh giá các tệp c: \ program trên hệ thống 32 bit hoặc tệp c: \ program (x86) trên hệ thống 64 bit. tức là% ProgramW6432% – OJW

+0

Vì vậy, câu hỏi đặt ra là: Cách truy cập đường dẫn 64-bit của các tệp chương trình, từ một phần mềm 32 bit chạy trên hệ thống 64 bit? –

-13

Nếu bạn sử dụng %programfiles% trên máy tính/máy tính xách tay 32 bit, nó sẽ mở C:\Program Files.

Nếu bạn sử dụng %programfiles% trên máy tính/máy tính xách tay 64 bit, nó sẽ mở C:\Program Files.

Nếu bạn có chương trình 64 bit được cài đặt trên máy tính/máy tính xách tay 32 bit, chương trình sẽ được cài đặt trong thư mục mới có tên Program Files (x64), nằm trong ổ "C". Trong trường hợp này bạn phải sử dụng .

Nếu bạn có chương trình 32 bit được cài đặt trên máy tính/máy tính xách tay 64 bit, chương trình sẽ được cài đặt trong thư mục mới có tên Program Files (x86), nằm trong ổ "C". Trong trường hợp này, bạn phải sử dụng %programfiles(x86).

+1

Tôi đoán một phần lý do mọi người downvoted là vì cụm từ 'Nếu bạn có một chương trình 64-bit được cài đặt trên máy tính 32-bit/máy tính xách tay', tất nhiên điều này rõ ràng là không thể mà nó vô nghĩa. –

2

Keith Hill đã trả lời câu hỏi này here, tóm tắt:

${env:ProgramFiles(x86)} không được định nghĩa trên một máy 32-bit

Nếu bạn luôn muốn đặt/nhận dữ liệu đến/từ thư mục x86, sau đó bạn có thể sử dụng mã này để xác định đường dẫn tệp:

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