ftype
divide seu argumento em "=" e não fornece meios para escapar do segundo caractere "=" no comando. Felizmente, esse comando apenas adiciona uma configuração de registro simples, que você pode adicionar manualmente usando reg
em um prompt de comando elevado:
assoc .macro=macrofile
set k=HKLM\Software\Classes\macrofile\shell\open\command
set d="\"%SystemRoot%\system32\doskey.exe\" /macrofile=\"%1\""
reg add %k% /f /ve /d %d%
Ou crie um arquivo .reg que possa ser importado com regedit
ou reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Classes\.macro]
@="macrofile"
[HKEY_LOCAL_MACHINE\Software\Classes\macrofile]
[HKEY_LOCAL_MACHINE\Software\Classes\macrofile\shell]
[HKEY_LOCAL_MACHINE\Software\Classes\macrofile\shell\open]
[HKEY_LOCAL_MACHINE\Software\Classes\macrofile\shell\open\command]
@="\"C:\Windows\system32\doskey.exe\" /macrofile=\"%1\""
Exemplo:
C:\>assoc .macro
.macro=macrofile
C:\>ftype macrofile
macrofile="C:\Windows\system32\doskey.exe" /macrofile="%1"
C:\>doskey /macros:all
[cmd.exe]
C:\>spam.macro
C:\>doskey /macros:all
[cmd.exe]
spam=echo spam!
C:\>spam
spam!