1

我为( ) 创建并命名为pwd的别名。我已将其保存在 bat 文件中并将其配置为使用命令处理器自动运行。echo %cd%@DOSKEY pwd=echo %cd%

现在,每当我pwd在命令处理器中运行命令时,C:\windows\system32无论我当前在哪个路径中,它都会返回。而当我运行echo %cd%它时,它会返回我所在的正确路径。

我该如何解决这个问题?是因为我传递给echo的参数吗?此参数应根据我要进入的路径更新。当命令提示符加载别名时,它似乎只更新一次。

4

1 回答 1

3

那是因为%cd%在宏定义期间展开,而不是在执行时展开。

从批处理文件中,您应该使用:

@DOSKEY pwd=echo %%cd%%

如果从命令行定义,扩展规则是不同的,所以你需要类似的东西:

DOSKEY pwd=echo %^cd%

但是有一种更简单的方法适用于所有情况。不带参数的CD命令仅列出当前目录。只需将命令括在括号中以防止传递参数。

@DOSKEY pwd=(cd)
于 2013-08-29T13:48:19.740 回答