我认为这个问题的答案是否定的,但事实不应该如此。
从命令提示符通常执行以下命令(作为示例):
C:\> FOR %I IN (*) DO ECHO %~xI
会给我目录中所有文件的扩展名。
我想用DOSKEY
相同的逻辑来创建别名。例如:
C:\> MACRO=ECHO $~x1
因此它的工作原理如下:
C:\> MACRO file.js
输出是
.js
显然我想做一些更有用的事情,但我无法让这个基本部分发挥作用。可能吗?
答案1
Doskey $1 参数不支持批处理参数和 FOR 变量等修饰符。
但是您可以在 FOR 语句中处理 Doskey 参数并使用正常的 FOR 变量修饰符。我使用 $* 而不是 $1,这样您就可以提供多个值。
doskey showExt=for %F in ($*) do @echo(%~xF
用法:
showExt test.bat test.txt
输出:
.bat
.txt