Expansão Variável Doskey

0

Estou pensando que a resposta a essa pergunta é não, mas não deveria ser.

No prompt de comando normalmente, o seguinte (como um exemplo):

C:\> FOR %I IN (*) DO ECHO %~xI

me daria as extensões de todos os arquivos no diretório.

Eu quero usar DOSKEY para criar um alias com a mesma lógica. por exemplo:

C:\> MACRO=ECHO $~x1

Então funcionaria assim:

C:\> MACRO file.js

saída é

.js

Obviamente, quero fazer algo um pouco mais útil, mas não consigo fazer com que essa parte básica funcione. É possível?

    
por dgo 30.10.2014 / 22:01

1 resposta

2

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
    
por 30.10.2014 / 22:15