um parâmetro Doskey $ 1 não suporta modificadores como parâmetros de lote e variáveis FOR.
Mas você pode processar o parâmetro Doskey dentro de uma instrução FOR e usar modificadores de variáveis FOR normais. Eu uso $ * em vez de $ 1 para que você possa fornecer mais de um valor.
doskey showExt=for %F in ($*) do @echo(%~xF
Uso:
showExt test.bat test.txt
Saída:
.bat
.txt