Я думаю, что ответ на этот вопрос - нет, но так быть не должно.

Из командной строки обычно следующее (как пример):

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

дал бы мне расширения всех файлов в каталоге.

Я хочу использовать DOSKEY для создания псевдонима с той же логикой. например:

C:\> MACRO=ECHO $~x1

Так что это будет работать так:

C:\> MACRO file.js

вывод

.js

Очевидно, я хочу сделать что-то более полезное, но я не могу заставить эту основную часть работать. Является ли это возможным?

1 ответ1

2

параметр Doskey $ 1 не поддерживает модификаторы, такие как пакетные параметры и переменные FOR.

Но вы можете обработать параметр Doskey в операторе FOR и использовать обычные модификаторы переменных FOR. Я использую $ * вместо $ 1, чтобы вы могли указать более одного значения.

doskey showExt=for %F in ($*) do @echo(%~xF

Использование:

showExt test.bat test.txt

Выход:

.bat
.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .