SETLOCAL ENABLEEXTENSIONS within your NT shell scripts (batch files) or execute those scripts using CMD /X.SETLOCAL DISABLEEXTENSIONS or CMD /Y.SETLOCAL page if you intend to use SETLOCAL extension switches.
Starts a separate window to run a specified program or command.
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.
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).
START commandpage last modified: 2021年01月27日; loaded in 0.0011 seconds
SETLOCAL ENABLEEXTENSIONS within your NT shell scripts (batch files) or execute those scripts using CMD /X.SETLOCAL DISABLEEXTENSIONS or CMD /Y.SETLOCAL page if you intend to use SETLOCAL extension switches.