Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我为( ) 创建并命名为pwd的别名。我已将其保存在 bat 文件中并将其配置为使用命令处理器自动运行。echo %cd%@DOSKEY pwd=echo %cd%
echo %cd%
@DOSKEY pwd=echo %cd%
现在,每当我pwd在命令处理器中运行命令时,C:\windows\system32无论我当前在哪个路径中,它都会返回。而当我运行echo %cd%它时,它会返回我所在的正确路径。
pwd
C:\windows\system32
我该如何解决这个问题?是因为我传递给echo的参数吗?此参数应根据我要进入的路径更新。当命令提示符加载别名时,它似乎只更新一次。
那是因为%cd%在宏定义期间展开,而不是在执行时展开。
%cd%
从批处理文件中,您应该使用:
@DOSKEY pwd=echo %%cd%%
如果从命令行定义,扩展规则是不同的,所以你需要类似的东西:
DOSKEY pwd=echo %^cd%
但是有一种更简单的方法适用于所有情况。不带参数的CD命令仅列出当前目录。只需将命令括在括号中以防止传递参数。
CD
@DOSKEY pwd=(cd)