CMD为驱动器D:上的工作目录设置一个名为“= D:”的常规隐藏环境变量。 Python进程继承此环境变量,Windows API在使用它时使用它 GetFullPathNameW 被调用以将驱动器相对路径“D:”解析为完全限定路径。
GetFullPathNameW
在CMD中,我们可以通过set“”列出所有环境变量,包括“隐藏”变量。这个命令取决于一个bug,但是它存在了很长时间以至于它现在是一个特性。要仅列出隐藏的,请使用 set "" | findstr /r "^=" 。例如:
set "" | findstr /r "^="
C:\>set "" | findstr /r "^=" =C:=C:\ C:\>cd /d E:\UserData E:\UserData>c: C:\>set "" | findstr /r "^=" =C:=C:\ =E:=E:\UserData C:\>set PYTHONPATH=E: C:\>python -c "import sys; print(sys.path[1]); sys.exit(0xFF)" E:\UserData C:\>set "" | findstr /r "^=" =C:=C:\ =E:=E:\UserData =ExitCode=000000FF