我为echo %cd%
(@DOSKEY pwd=echo %cd%
)创建了名为 pwd 的别名。我已将其保存在bat文件中,并将其配置为使用命令处理器自动运行。
现在每当我在命令处理器中运行命令pwd
时,无论我当前在哪条路径,它都会返回C:\windows\system32
。而当我运行echo %cd%
时,它返回正确的道路我在。
我该如何解决这个问题?是因为我传递给echo的参数?此参数应根据我进入的路径进行更新。当命令提示符加载别名时,它似乎只更新一次。
答案 0 :(得分:3)
这是因为%cd%
在宏的定义期间被扩展,而不是在它被执行时扩展。
从批处理文件中,您应该使用:
@DOSKEY pwd=echo %%cd%%
如果从命令行定义,扩展规则是不同的,那么您需要以下内容:
DOSKEY pwd=echo %^cd%
但是有一种更简单的方法适用于所有情况。不带参数的CD
命令只列出当前目录。只需将命令括在括号中即可防止传递参数。
@DOSKEY pwd=(cd)