为什么 %cd% 设置在 doskey alias script returns 脚本路径而不是当前目录

Why %cd% set in doskey alias script returns script path instead of the current directory

我正在 %userprofile%\alias.cmd 中设置一个包含基本 DOSKEY 命令的别名文件:

@echo off
DOSKEY ls=dir
DOSKEY clear=cls
DOSKEY pwd=echo %cd%

我正在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command 处理器中安装 alias.cmd,如 Aliases in Windows command prompt

中所述

并测试:

C:\Users\tim>cd workspace

C:\Users\tim\workspace>pwd
C:\Users\tim

C:\Users\tim\workspace>echo %cd%
C:\Users\tim\workspace

我想知道为什么 %cd% returns 脚本路径而不是当前目录 doskey pwd 应该与 echo %cd%

具有相同的结果

这是因为行:

DOSKEY pwd=echo %cd%

在批处理脚本中,%cd% 将在您定义宏时进行计算。 您将 pwd-宏设置为固定值。

尝试使用:

DOSKEY pwd=echo %%cd%%