$ help assoc
Displays or modifies file extension associations
ASSOC [.ext[=[fileType]]]
.ext Specifies the file extension to associate the file type with
fileType Specifies the file type to associate with the file extension
Type ASSOC without parameters to display the current file associations.
If ASSOC is invoked with just a file extension, it displays the current
file association for that file extension. Specify nothing for the file
type and the command will delete the association for the file extension.
$ help ftype
Displays or modifies file types used in file extension associations
FTYPE [fileType[=[openCommandString]]]
fileType Specifies the file type to examine or change
openCommandString Specifies the open command to use when launching files
of this type.
Type FTYPE without parameters to display the current file types that
have open command strings defined. FTYPE is invoked with just a file
type, it displays the current open command string for that file type.
Specify nothing for the open command string and the FTYPE command will
delete the open command string for the file type. Within an open
command string %0 or %1 are substituted with the file name being
launched through the assocation. %* gets all the parameters and %2
gets the 1st parameter, %3 the second, etc. %~n gets all the remaining
parameters starting with the nth parameter, where n may be between 2 and 9,
inclusive. For example:
ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*
would allow you to invoke a Perl script as follows:
script.pl 1 2 3
If you want to eliminate the need to type the extensions, then do the
following:
set PATHEXT=.pl;%PATHEXT%
and the script could be invoked as follows:
script 1 2 3
####
$ ftype |ack perl
PerlScript=perl.exe %1 %*
$ assoc |ack -i perl
.pl=PerlScript
####
$ reg query HKEY_CLASSES_ROOT\PerlScript /s
! REG.EXE VERSION 3.0
HKEY_CLASSES_ROOT\PerlScript
REG_SZ PerlScript Language
HKEY_CLASSES_ROOT\PerlScript\CLSID
REG_SZ {F8D77580-0F09-11d0-AA61-3C284E000000}
HKEY_CLASSES_ROOT\PerlScript\OLEScript
HKEY_CLASSES_ROOT\PerlScript\Shell
HKEY_CLASSES_ROOT\PerlScript\Shell\Open
HKEY_CLASSES_ROOT\PerlScript\Shell\Open\Command
REG_EXPAND_SZ perl.exe %1 %*
$ reg query HKEY_CLASSES_ROOT\.pl /s
! REG.EXE VERSION 3.0
HKEY_CLASSES_ROOT\.pl
REG_SZ PerlScript