Crie um arquivo de definição de macro , por exemplo, em notepad ; nomeie-o à vontade e salve-o em qualquer lugar (por exemplo, no próximo exemplo, usei o nome do arquivo macros.doskey in d:\bat\ folder).
Como alternativa, o comando doskey /macros>d:\bat\macros.doskey listará todas as definições de macro atuais no arquivo d:\bat\macros.doskey .
Um exemplo de arquivo de definição de macro pode ser o seguinte (observe que ==> é o prompt de comando especificado por prompt $Q$Q$G$S command ):
==> type d:\bat\macros.doskey
ls=dir /B $1
ip=ipconfig $*
Então, os próximos comandos devem fazer o trabalho:
==> reg add "HKCU\Software\Microsoft\Command Processor" /v Autorun /d "doskey /macrofile=\"d:\bat\macros.doskey\"" /f
The operation completed successfully.
==> reg query "HKCU\Software\Microsoft\Command Processor" /v Autorun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
Autorun REG_SZ doskey /macrofile="d:\bat\macros.doskey"
Para explicação, leia cmd /? :
If
/Dwas NOT specified on the command line, then whenCMD.EXEstarts, it looks for the followingREG_SZ/REG_EXPAND_SZregistry variables, and if either or both are present, they are executed first.HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRunand/or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
Aviso de isenção de responsabilidade : algumas configurações de AutoRun podem resultar em comportamento indesejado indesejado, por exemplo, como descrito em Pegada oculta: a configuração AutoRun do processador de comandos
Leia Salve e restaure as definições de macro ; você pode preparar um arquivo de script macros.cmd válido em uma etapa:
==> >macros.cmd (@for /F "delims=" %G in ('doskey /macros') do @echo DOSKEY %G)
==> type macros.cmd
DOSKEY ip=ipconfig $*
DOSKEY ls=dir /B $1
==>
Tenha em mente que você não pode executar uma macro do Doskey a partir de um arquivo de lote .