Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
As part of my transition into using 64 bit windows I keep running into a problem with some scripts.
I have a whole set of Powershell scripts that are dedicated to ensuring certain programs are installed on all of my dev machines. Or that certain customizations are needed. A lot of these do file existence checks inside of Program Files.
Unfortunately in 64 bit windows there are actually two Program Files folders. One for 64 bit programs and a separate one for 32 bit programs that operate in Wow64 mode. All code which uses $env:ProgramFiles will point to the 64 bit version. Most of the programs I custom install (i.e. gvim are actually 32 bit programs).
Getting the 32 bit Program Files directory is simple enough: ${env:ProgramFiles(x86)}. Yet it's not portable back to a 32 bit version of windows. Yet another function to the rescue
function Get-ProgramFiles32() {
if (Test-Win64 ) {
return ${env:ProgramFiles(x86)}
}
return $env:ProgramFiles
}