Rob van der Woude's Scripting Pages

The START command:

Windows NT 4/Windows 2000 Syntax

Starts a separate window to run a specified program or command.

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME] [/WAIT] [/B] [command / program] [parameters]
"title" Title to display in window title bar
/Dpath Starting directory
/I The new environment will be the original environment passed to the cmd.exe and not the current environment.
/MIN Start window minimized
/MAX Start window maximized
/SEPARATE Start 16-bit Windows program in separate memory space
/SHARED Start 16-bit Windows program in shared memory space
/LOW Start application in the IDLE priority class
/NORMAL Start application in the NORMAL priority class
/HIGH Start application in the HIGH priority class
/REALTIME Start application in the REALTIME priority class
/WAIT Start application and wait for it to terminate
/B Start application without creating a new window.
The application has ˆC handling ignored.
Unless the application enables ˆC processing, ˆBreak is the only way to interrupt the application
command / program If it is an internal cmd command or a batch file then the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command has been run.
If it is not an internal cmd command or batch file then it is a program and will run as either a windowed application or a console application.
parameters These are the parameters passed to the command/program

If Command Extensions are enabled, external command invocation through the command line or the START command changes as follows:

Non-executable files may be invoked through their file association just by typing the name of the file as a command. (e.g. WORD.DOC would launch the application associated with the .DOC file extension).
See the ASSOC and FTYPE commands for how to create these associations from within a command script.

When executing an application that is a 32-bit GUI application, CMD.EXE does not wait for the application to terminate before returning to the command prompt. This new behavior does NOT occur if executing within a command script.

When executing a command line whose first token is CMD without an extension or path qualifier, then replaces CMD with the value of the COMSPEC variable, thus avoiding picking up random versions of CMD.EXE when you least expect them.

When executing a command line whose first token does NOT contain an extension, then CMD.EXE uses the value of the PATHEXT environment variable to determine which extensions to look for and in what order. The default value for the PATHEXT variable is:

.COM;.EXE;.BAT;.CMD

Notice the syntax is the same as the PATH variable, with semicolons separating the different elements.

When executing a command, if there is no match on any extension, then looks to see if the name, without any extension, matches a directory name and if it does, the START command launches the Explorer on that path. If done from the command line, it is the equivalent to doing a CD /D to that path.

File Associations

The file associations for non-executable files are stored in the registry in the HKEY_CLASSES_ROOT hive.
The HKEY_CLASSES_ROOT\.ext entry (as created by the ASSOC command) points to the file type (e.g. Word.Document.12 for HKEY_CLASSES_ROOT\.docx).

The details for the specified file type are also stored in the HKEY_CLASSES_ROOT hive under HKEY_CLASSES_ROOT\FileType (e.g. HKEY_CLASSES_ROOT\Word.Document.12).
In HKEY_CLASSES_ROOT\FileType\shell\open\command the "File Open" command is stored (e.g. "C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /n /dde for HKEY_CLASSES_ROOT\Word.Document.12\shell\open\command).

Often we find "%1" in the commands associated with file types (HKEY_CLASSES_ROOT\FileType\shell\open\command).
In Windows 9x through 2000 (and possibly XP) this would evaluate to the short notation of the fully qualified path of the file of type FileType.
To get the long file name, use "%L" instead of "%1".

I ran some tests in Windows 7 and found the following parameters for file associations:

Parameter Evaluates to
%1 Long fully qualified path of file
%D Long fully qualified path of file
%H 0
%I :number:number
%L Long fully qualified path of file
%S 1
%V Long fully qualified path of file
%W Long fully qualified path of parent folder

So far I don't have a clue as to what %H, %I and %S are for.
And it seems we can no longer get a short file name even if we want to.
For backward compatibility it would seem wise to stick with %1, %L and %W (Thomas Rudloff confirmed that %W is valid in XP, but I haven't tested in older Windows versions).


page last modified: 2021-01-27; loaded in 0.0098 seconds