当我尝试自定义命令提示符时,我遇到了一个奇怪的行为:
从 CMD 行
SET set prompt=$D $T$H$H$H$_%USERNAME%@%COMPUTERNAME%$_$P$G
按预期工作:
28/05/2020 12:02:15
DDS@DDS-PC
C:\Users\DDS>
但如果我设置相同的变量编辑:(在“用户 DDS 的变量”中)使用与 Windows 实用程序中相同的值来设置变量,我得到了:
28/05/2020 12:04:18
SYSTEM@DDS-PC
C:\Users\DDS>
注意:实用程序本身在编辑变量时正确显示 DDS 值,只是命令提示符解析%USERNAME%
为SYSTEM
答案1
当您从系统应用程序执行该程序时,它将在 SYSTEM 用户下运行。
请记住,变量不会随着每次提示而更新。这意味着如果您要更改用户名,您的提示不会更改。它将成为静态文本。假设您使用提示变量来表示日期,它们会更新,但计算机名称和用户名不会更新。
我认为这不会是一个大问题,但你可以做两件事来解决这个问题。要么不使用 %USERNAME%,而只写出你的用户名(反正这无所谓),要么使用命令提示符正确设置提示符,然后使用以下命令将其推送到系统:
setx PROMPT %PROMPT%
要测试这一点,请尝试在提示符中使用 %CD%,然后更改目录。请注意,提示符仍然显示旧目录。