答案1
首先,这不是 MS-DOS。Cmd.exe 大致基于 command.com(DOS 提示符),但仅此而已。它与旧时代有很大不同,但(大部分)向后兼容。
此外,您看到的行为与命令提示符无关。此行为存在于 Windows 启动的每个进程中。
为什么你会看到所描述的行为
两个原因之一(或两个原因都存在)
可能原因一:
Windows 对列表中显示的环境变量进行一次遍历。当 Windows 调用 ExpandEnvironmentStrings() 函数时,_BTest 尚未解析。为了实现您期望的结果,Windows 需要在整个列表中反复调用此函数,直到没有剩余内容需要解析。
可能原因二:
Windows 使用注册表项来存储此信息。为了使此功能首先起作用,注册表项必须具有 REG_EXPAND_SZ 类型,而不是 REG_SZ 类型。
打开注册表编辑器并查看HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
。您将在那里看到这些键类型。您不能直接更改类型(不幸的是),您需要使用虚拟名称创建一个所需类型的新键,复制数据,删除(或重命名)原始键,将虚拟键重命名为您想要的名称。