Как получить программные файлы x86 env variable?
Я хотел бы знать, как я могу отобразить расположение программных файлов (x86) в командной строке. Я использую Windows 7 64bit.
Я пробовал:
echo %programfiles(x86)%
и echo %programfiles%
,
оба из которых отображаются только C:\Program Files
Когда я вручную проверил реестр,
HKLM/Software/Microsoft/Windows/CurrentVersion,
programfilesdir
указывает на C:\Program Files
и
HKLM/Software/WOW64/Microsoft/Winodws/CurrentVersion,
programfilesdir
указывает на C:\Program Files (x86)
.
Но почему я всегда показываюсь с C:\Program Files??
Ответы
Ответ 1
На 64-разрядной машине, работающей в 64-разрядном режиме:
-
echo %programfiles%
== > C:\Program Files
-
echo %programfiles(x86)%
== > C:\Program Files (x86)
На 64-разрядной машине, работающей в 32-разрядном (WOW64) режиме:
-
echo %programfiles%
== > C:\Program Files (x86)
-
echo %programfiles(x86)%
== > C:\Program Files (x86)
На 32-разрядной машине, работающей в 32-разрядном режиме:
-
echo %programfiles%
== > C:\Program Files
-
echo %programfiles(x86)%
== > %programfiles(x86)%
Ответ 2
Другая важная переменная среды:
% ProgramW6432%
Итак, на 64-разрядной машине, работающей в 32-разрядном (WOW64) режиме:
- echo% programfiles% == > C:\Program Files (x86)
- echo% programfiles (x86)% == > C:\Program Files (x86)
- echo% ProgramW6432% == > C:\Program Files
От Wikipedia:
Переменная% ProgramFiles% указывает на каталог Program Files, который хранит все установленные программы Windows и другие. по умолчанию в англоязычных системах используется "C:\Program Files". В 64-битном выпусков Windows (XP, 2003, Vista), есть также % ProgramFiles (x86)%, который по умолчанию соответствует "C:\Program Files (x86)" и % ProgramW6432%, который по умолчанию соответствует "C:\Program Files". % ProgramFiles% зависит от того, будет ли процесс, запрашивающий переменная среды сама по себе является 32-разрядной или 64-разрядной (это вызвано 64-разрядное перенаправление Windows-on-Windows).
Ссылка: http://en.wikipedia.org/wiki/Environment_variable
Ответ 3
На 64-битной машине Windows, echo% programfiles (x86)% печатает C:\Program Files (x86)
Ответ 4
ИМХО, один момент, который отсутствует в этом обсуждении, заключается в том, что какую бы переменную вы не использовали, она всегда будет указывать на соответствующую папку.
Это становится критичным в тех редких случаях, когда Windows установлена на диск, отличный от C: \
Ответ 5
Я попробовал несколько вариантов этого, которые я нашел в Интернете, и никто из них не работал. Я пытался исправить рег-проблему с Subtitle Creator.
После некоторых проб и ошибок, вот тот, который работал у меня в Windows 7 64-bit.
- В меню "Пуск" Windows введите CMD в поле поиска.
- Щелкните правой кнопкой мыши файл cmd.exe и выберите "Запуск от имени администратора".
- При появлении запроса введите пароль администратора.
- Теперь используйте эту команду:
% systemroot%\SysWoW64\regsvr32 "C:\Program Files (x86)\SubtitleCreator\SCSubtitleFilter.ax"
Если вы исправляете другую dll, вам нужно использовать полный путь для вашей dll внутри кавычек.