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
/D
was NOT specified on the command line, then whenCMD.EXE
starts, it looks for the followingREG_SZ
/REG_EXPAND_SZ
registry variables, and if either or both are present, they are executed first.HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
and/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 .