Windows Command Line – 64-bit?

I've had a lot of people ask me about the 64-bit edition of Windows 7 and whether it has a 64-bit command line. The answer is yes and no. In this post, I'll explain what I mean.

First, if you launch the Windows command line (cmd.exe) on a 64-bit edition of Windows 7 and then look at the Task Manager, you'll notice that the process entry for cmd.exe does not have an *32 after it. This indicates that the cmd.exe process is 64-bit. You may notice several entries in the Task Manager with the *32 after them. These entries are for 32-bit applications and processes.

Now, the question is this: are all the Windows 7 command line commands also 64-bit now? The answer there is: It depends?

You see many of us have old habits that die hard. As long as you use 64-bit commands, while in cmd.exe, you will be using 64-bit command line tools; however, if you run a 32-bit command that command will still run, but it will be in 32-bit mode.

To see this, open the task manager and then open the command prompt from the Start menu on your Windows 7 64-bit machine.

Now change to the C:WindowsSysWOW64 directory in the command prompt window and then execute the more command with no parameters. It will appear to hang, but that's OK.

Look at the task manager and note the entry for the command. It has an *32 after it.

You see, the files in the C:WindowsSysWOW64 folder are 32-bit commands. There is even a 32-bit version of cmd.exe that you can launch from there.

The point is simply this: To ensure that you are running a true 64-bit command prompt, make sure that all of your commands are 64-bit and not just thecmd.exe.

12 thoughts on “Windows Command Line – 64-bit?”

  1. Bottom line is windows 7 64bit is a terrible OS for anything intelligent.
    M$ has given up on true programming and any usefull features are simply taken out.
    Seriously it’s time to learn Linux as Windows is really sh&t.

      1. the way Dave expressed was more of a frustration which I share btw. I’m trying to do a simple batch file but being castrated due to 32bit commands and there is no way around it. I’ve been banging my head for last 3 hours and while searching for alternative solution, I ran into this site. I could of been done with this simple task in unix/linux environment within 10min. I hate windows.

        1. I can understand your frustration; however, I could have been done with it in 10 minutes too on Windows. I would simply use PowerShell. The argument to switch to Linux because it has a more powerful scripting environment is simply dead with PowerShell, version 3 particularly. But you are right, Linux/Unix was CERTAINLY there first! Took MS a long time to get it after leaving the DOS world :-)

          1. Hello Tom Carpenter

            I am bit amused (and annoyed at the same time) with your reply and I too find myself in exact same scenario as Dave and Struct did. Microsoft is attempting to lock the stable gates after horses have long bolted.

            I have about 400-500 batch file scripts that process mountain load of data and ran flawlessly in 32 bit era Windows. This scripts were not written in a day but rather they were written incrementally over a period of 7-8 years (as needs evolved) by a team of approx 20 people and many of them have left jobs or been terminated.

            Since text processing features in Windows were lot inferior, to make life easy, we had downloaded Unix Command line port of many of its popular utilities such as grep, awk, sed, curl, lynx, wget, mycurl (just to name a few). In all there are 132 windows-command-line-unix-style-executable used by these batch files collected over time and placed in one folder C:\utils. This folder was on path and life was easy.

            All batch files ran flawlessly and data was crunched, collated and tucked away on daily basis.

            To my horror, most of the batch files run and we have close to 50GB of data flowing on daily basis. Rewriting those 500 scripts in some other Microsoft-favourite language such as Powershell throws upon us an unnecessary learning curve.

  2. Under Win 8, 64 bit running any of the following:

    results in the Task Manager entries being shown as:
    Windows Command Processor (32 bit)

    Is there any way to get a 64 bit command line in Win8, 64 bit?

  3. So… when i’m making DOS programs like:

    @echo off
    title Hello 64 bit!
    echo Hello!

    Is that 16, 32, 64 bit? When I program like this on Windows 3.1 (16 bit) It wont work. What is it?

    1. It will run as 64-bit if you are in a default CMD prompt on a 64-bit edition of Windows. The PAUSE command used is internal to the CMD (command) interpreter, so it does not force a shell to a 32-bit version of CMD.

  4. Ok I have a problem here I am rummning 64bit windows. But I am trying to open a program to view the coding of it in the command propmpt but for some reason I can not use the EDIT command in 64 bit windows. is there away around this??? C:WindowssysWOW64cmd.exe i tried this and it still runs the 64 bit version of cmd prompt and am still unable to view the coding of the program I am trying to look at.

  5. Sadly Powershell seems no better for scripting. A batch script on Win-7(64) using simple MS-batch maths (division and modulus) to run a decimal to binary conversion keels over with any number over 32 bits:

    PS C:\tmp> .\dec2bin.bat 4294967296
    Invalid number. Numbers are limited to 32-bits of precision.

Leave a Reply

Your email address will not be published. Required fields are marked *