!!! THIS IS NOT A PROPER DOSKEY MACRO FILE !!! !!! This is a documentation !!! I have changed the shortcut "Command prompt" in start menu to %windir%\System32\cmd.exe /F:ON /k doskey /macrofile="%USERPROFILE%\doskey.mac" This way I have all my macros readily available at all times. I have also mapped a hotkey to the shortcut "CTRL+SHIFT+`". The great feature is that (at least under WinNT&Win2k) if the cmd prompt is already running it just comes up. No second cmd prompt is created. Some of the macros require Perl installed, sometimes even with some of my own modules. You should find them all at http://jenda.krynicky.cz Perl may be installed from http://www.activestate.com Macros 1) doskey related macros list=doskey /macros $* show=doskey /macros $* lists all defined macros on screen load=doskey /macrofile="%USERPROFILE%\doskey.mac" reloads macros from doskey.mac save=doskey /macros > "%userprofile%\doskey.mac" saves active macros to doskey.mac you have to call this macro every time you create a new macro otherwise it will not be defined the next time you start Command prompt openmac=c:\soft\pfe\pfe32.exe "%USERPROFILE%\doskey.mac" opens doskey.mac with an editor. Change the ...\pfe32.exe to whatever plain text editor you like 2) Explorer and registered applications .=start $* x=start $* just two shortcuts for "start" unsubst=subst $* /d I could never remember how to unsubst properly. P.S.: Do look at the subst command. It's very handy! opera=e:\soft\Opera\Opera.exe $* pfe=c:\soft\pfe\pfe32.exe $* pmail=c:\PMAIL\winpm-32.exe -I jan -Z 256 sqlman="C:\Documents and Settings\jendak\Desktop\Enterprise Manager.lnk" sqlmgr="C:\Documents and Settings\jendak\Desktop\Enterprise Manager.lnk" tn="C:\Soft\TurboNavigator\tn.exe" These are just shortcuts. 3) General utilities doswin=c:\soft\utils\mcpconv.pl cp852 cp1250 win $* tomac=c:\soft\utils\mcpconv.pl cp1250 macce mac $* towin=c:\soft\utils\mcpconv.pl macce cp1250 win $* windos=c:\soft\utils\mcpconv.pl cp1250 cp852 dos $* Charset conversion 4) Perl related / requiring d2h=perl -e "foreach (@ARGV) { printf('%X ', $_); }" $* convert decimal to hexa h2d=perl -e "foreach (@ARGV) { print hex($_).' '; }" $* convert hexa to decimal mo=perl -e "map{s#/|::|-#\\#g;$_.='.pm'}@ARGV;for$m(@ARGV){for(@INC){die `start $_\\$m`.qq{\n} if -e qq{$_\\$m}}}" $* om=perl -e "map{s#/|::|-#\\#g;$_.='.pm'}@ARGV;for$m(@ARGV){for(@INC){die `start $_\\$m`.qq{\n} if -e qq{$_\\$m}}}" $* find a module in library directories and open it os=perl -e "map{s#/|::#\\#g}@ARGV;for$m(@ARGV){for(split';',$ENV{PATH}){for$e(qw(pl bat plx)){die `c:\\soft\\pfe\\pfe32.exe $_\\$m.$e` if -e qq{$_\\$m.$e}}}}" $* so=perl -e "map{s#/|::#\\#g}@ARGV;for$m(@ARGV){for(split';',$ENV{PATH}){for$e(qw(pl bat plx)){die `c:\\soft\\pfe\\pfe32.exe $_\\$m.$e` if -e qq{$_\\$m.$e}}}}" $* find a script in %PATH% and open it. Don't forget to change the path to the plain text editor. newmod=h2xs -A -X -f -n $* create an empty module template perld=perl -d:ptkdb $* run the script in ptkdb debuger regapp=regapp.pl $* just a shortcut so that you do not have to write .pl each time. u=perl -e "grep{s#/#\\#g or 1}@ARGV;system('start',@ARGV)" $* convert all unix type paths to windows like (/s to \s) and run the program winerr=perl -e "foreach (@ARGV) { print qq{$_ = },Win32::FormatMessage($_);}" $* print the message associated with this error.