May 21, 2008
Tip and Trick Editorial

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:

  1. Click Start.
  2. 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.

  3. Press Enter.

32-bit Command Prompt

In 32-bit command prompt, the %programfiles% path variable will point to Program Files (x86) folder which stores all 32-bit binaries.

  • Adolfo Di Mare

    I was able to make http://dosbox.org run VDE.exe but many of the features CMD.exe provides in 32bit mode are lost: window resizing and mark+paste with the mouse. You should be able to run Turbo C within dosbox, or you can move on to Code::Blocks.

  • chuck pruim

    i am looking for 2 things

    1) a good command line compacter (like pkzip/pkunzip) for 64-bit

    2) a good print screen program that works on windows 7 (use printkey 2000 on XP)

    thanks cp

  • jyothi

    i have 64bit windows7 os with me . i want to install turbo c in that.can u help me .

  • Kyle

    I seem to randomly get errors on auto-run applications stating

    "this version isn't compatable with the version of windows you are running, Check to be sure you have a 32 bit or a 64 bit and contact the publisher"

    What the fook? I bought mine at Office Depot with windows preloaded 2 years ago and this message has drivin me nuts.

  • Shahrukh

    I want to run Turbo C on Windows 7 64 bit version. The problem is incompatibility. Any solution you know. do post here.

  • Christine

    thankkk youuuu

  • Balaji Ramanujam

    I'm using 64 bit version Windows Vista.

    I try to run a windows batch file.

    It is showing an error that "This 32 bit version is not supported by this version"

    Wat to do?

    Plz give an solution

  • Misty

    Lynda

    I have had my computer for close to 4 months and never realized I had two versions of internet explorer. I could never figure out why I could sometimes view movies etc. but most of the time I couldn't. Thank you so much for letting me in on the secret!!!!

    Misty

  • Lynda

    Many people with new computers, especially those upgrading from Windows 98 to Windows Vista, discover that they are unable to view a movie, etc. because of the 64 bit / 32 bit issue. For most of us who are computer users but not technically literate, the error message freaks us out and we go in search of a "fix." Your article is the CLOSEST thing to that "fix" that comes up in a quick google search … but it is inaccurate.

    The TRUE response is this, (and therefore something you might want to publish, too): If the above scenario is what has happened to you, it is likely that your new computer has TWO versions of Internet Explorer! Click on Start to look at all your programs, and you should see both of them listed together, with the second one listed as "Internet Explorer (64 bit)" According to Microsoft, the 32-bit version of IE is the one they put up for the shortcut when you click on the globe icon. To check which version of IE your shortcut pulls up, click on it then click on help, then click on "about internet explorer." If the cipher strength says 256 bits, it is the 32-bit version.

    When websites start catching up, we can use the 64-bit version (which looks better) more often. This is why Microsoft loaded two versions for us. Kinda smart, really. Just dumb not to have let us know somehow…

    LCW

  • nathan

    I wrote a program which spawn a process. On running it on CLI x86 it display the output message of the spawned process where on x64 I was not able to find the display of spawned process output. Please help me on this. Thanks in advance.

  • ian sebryk

    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!

  • http://blogs.sepago.de/nicholas Nicholas Dille

    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.

  • ian sebryk

    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%SysWoW64cmd.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}}

  • http://blogs.sepago.de/nicholas Nicholas Dille

    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

    Enjoy,

    Nicholas.

Get latest updates via email: