How to Open and Run 32-bit Command Prompt in 64-bit (x64) Windows
64-bit or x64 version of Windows operating system such as Windows Server 2003, Windows XP Professional x64 Edition, Windows Vista and Windows Server 2008 uses the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem layer to run 32-bit programs, binaries or drivers without modifications, change or transition to 64-bit based binaries, as the 64-bit OS is optimized to run native 64-bit programs and does not provide support for 16-bit binaries or 32-bit drivers.
To reduce compatibility issue and prevent a 32-bit program from accidentally accessing data from 64-bit application, WOW64 subsystem isolates 32-bit binaries from 64-bit binaries by redirecting registry calls and some file system calls. Other than separate registry hive for WOW64 redirected 32-bit values, %systemroot%\System32 and Program Files folder is designated as 64-bit DLLs only too, and all access or I/O of 32-bit binaries been redirected from %windir%\System32 folder to the %windir%\SysWOW64 folder, and from Program Files to Program Files (x86) directory.
The command prompt (cmd.exe) is also affected by File System Redirection feature, where command line commands or .bat and .cmd batch script may not be able to access, install, change, modify, delete or write to “Program Files” or “%windir%\System32″ folder. The WOW64 subsystem redirects and installs 32-bit programs in the “Program Files (x86)” and “%systemroot%\SysWOW64″ folder.
To access the correct folder, programmer or developer must change the command-line script, or using Sysnative virtual directory alias to access %windir%\System32 instead of %windir%\SysWOW64. When this is not possible, or when have to access original native Program Files folder, user can type the command-line script at a 32-bit command prompt. The 32-bit command prompt automatically redirects file system calls to the correct 32-bit directory.
To start and open a 32-bit command prompt, follow these steps:
- Click Start.
- Type %windir%\SysWoW64\cmd.exe in Start Search box.
Alternatively, press Win + R keys (or type Run in Start Search) to open Run dialog, and type %windir%\SysWoW64\cmd.exe.
- Press Enter.

In 32-bit command prompt, the %programfiles% path variable will point to Program Files (x86) folder which stores all 32-bit binaries.
Related Articles
- How Open Command Prompt as Administrator on Elevation in Vista
- How to Suppress and Bypass System32 File System Redirect to SysWOW64 Folder with Sysnative
- How to Open Windows Vista Recovery Environment (RE) Console from Installation CD
- Unable to Open Device Manager on Tasks Pane of Computer Properties in Windows Vista
- How to Disable Windows Vista CD or DVD Drive Auto Eject or Open Feature
- Workaround to Re-Open Last Opened Tabs When Exit The Next Time Using Internet Explorer in IE8 Beta 1
- Windows Vista Startup Hang and Boot Failure after SP1 on Corrupt Driver File (atapi.sys and ataport.sys)
- 0X80070002 License Check Failure and Unable to Logon Error After Installing Windows XP SP3
- NSIS Error and Cannot or Unable to Open and Install Setup Installer
- Ways to Disable or Turn Off User Account (Access) Control (UAC) in Windows Vista

































May 23rd, 2008 14:29
As you described in the article, the original %SystemRoot%\System32 is not accessible to 32-bit processes. Unfortunately, there are several tools existing uniquely as 64-bit binaries (e.g. logogg.exe and tsshutdn.exe). In one of my articles, I describe two techniques circumventing the limitation of launching 64-bit system tools from 32-bit processes: http://blogs.sepago.de/nicholas/2008/03/13/jailed-32-bit-processes-on-windows-x64/
Enjoy,
Nicholas.
August 21st, 2008 11:37
i tried using your advice to try and get some 32bit apps to run a bit better on my 64bit box. problem is, now i get weird errors from some key software. i don’t know how to undo the change… which may serve me right for swimming in deep waters…
throw me a raft, ya?
here’s a sample error that showed up mid-execution after i’d run the %windir%\SysWoW64\cmd.exe command:
Error: can’t define “ProgramFiles(x86)”: name refers to an element in an array
while evaluating script: namespace eval :: {source {C:/Program Files (x86)/[directory tree]/RMSExpression.tcl}}
August 21st, 2008 14:34
I may be dipping the raft but I reckon the TCL interpreter does not allow brackets in the path to a file which it is about to source.
Does it help to move the installation directory to a location outside of “c:\Program Files (x86)”, e.g. “c:\progs”?
Hope that helps,
Nicholas.
August 21st, 2008 17:42
i thought that might be a solution, but before i tried it, i tried just running it from a normal shell, instead of through the batchfile that launched the app in question, and it worked fine. so much weirdness.
the batchfile no longer works, but direct command line does. how weird is that?!
i’ll also try a different path without brackets to see if that re-enables my batchfile’s ability to launch. reaaaly need the batchfile to work again…
thank Nicholas. i’ll keep you posted.
WR!