Welcome to my first article ever. To begin with, the reason I write this article. I participated in a question on Experts Exchange about the start
command in Windows and there were some discussion about the usage.
The discussion was about whether you should or should not use the parameter title
in this command. It all started with a command similar to this:
start notepad.exe C:\Foo.bar
The intention was to open the file Foo.bar
in notepad. Let us have a look at this problem.
2. The Problem
start notepad.exe C:\Foo.bar
The command above seems to be fine, and it works okay, but there could be problems. What if the program or command has a space in it? Pretend we are using this command to open a program called My Application.exe
. What would you try?
start My Application.exe
start "My Application.exe"
The answer is that none of the commands above work. Why? The first tries to call a command or an application called My
with the parameter value of Application.exe
. The second command just opens a new cmd.exe
with the title "My Application.exe".
3. The Solution
The solution to the problem would be to use this command instead:
start "" "My Application.exe"
Notice the two double quotes at the beginning. Those are the title of the command prompt calling the command or program.
4. Some thoughts
But why did the initial command start notepad.exe C:\Foo.bar
work without the double quotes? Would not that be the title of the command window? No, this is because of the way the command was written. The command was written with notepad.exe
and not "notepad.exe"
. If we had written it as start "notepad.exe" C:\Foo.bar
we would have the same problem.
To be really sure that the command start
does what you want, use the title parameter first, even if you are going to do something easy as opening a file in notepad.
The bottom line is:
If your command, program or file has a space in its name, you have to use the title parameter and put your command, program or file in double quotes.
6. EXTRA - Syntax and parameters
The simple syntax of the command is:
The more advanced syntax is:
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
– Specifies the title of the command prompt window title bar.
Important: This is optional. If you use it, the quote marks are required.
– Sets the work directory.
– Starts the new window in the default startup environment.
– Starts windows in minimized or maximized.
– Starts a 16-bit application in separate or shared memory. (Not supported on 64-bit systems).
/low /normal /high /realtime /abovenormal /belownormal
– Specifies which priority the application will start in.
– Starts the command or application and waits for it to terminate.
– Starts the application without starting a new window.
– Specifies the command or program you want to start. If you start a built-in command the command prompt will stay open after execution.
– Specifies the parameters to the command or program.
See The START command
for more details.
7. EXTRA II – Tips and tricks
There are some exceptions to the command though. You might use the command without specifying a program. For instance start C:\Foo.bar
. This would open the file Foo.bar
with the program associated to the file type .bar
. If there is no program associated to the .bar
file type, it will prompt you with the ‘Open with’ dialog. But again, if the file has a space you have to put the file name in double quotes and also include the title parameter.