ole*_*ksa 7 windows powershell environment-variables
请帮我处理 PowerShell 环境变量。
我了解到 PowerShell 具有访问系统环境变量值的特殊语法。所以我试图执行:
$env:Temp
Run Code Online (Sandbox Code Playgroud)
在 Windows 10 上的 PowerShell 6.2.4 控制台中。输出很奇怪:
C:\Users\OD42B~1.BOR\AppData\Local\Temp
Run Code Online (Sandbox Code Playgroud)
它将我的 Windows 用户名缩短为 8.3 形式。问题是我无法使用该cd $env:temp命令,它显示以下错误:
cd : An object at the specified path C:\Users\OD42B~1.BOR does not exist.
Run Code Online (Sandbox Code Playgroud)
但是我可以cd %temp%在cmd终端上做。
我试过 Windows PowerShell 应用程序 ( %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe) 但cd $env:Temp也不起作用。
我已经检查了环境变量配置选项(系统属性\环境变量),TEMP并且TMP变量和变量都使用长格式的配置文件文件夹名称显示,例如c:\users\o.borolongprofilename\AppData\Local\Temp.
如何cd $env:Temp在 PowerShell 中使用非 8.3 配置文件名称?
PowerShellget-childitem env:Temp输出是C:\Users\OD42B~1.BOR\AppData\Local\Temp.
Cmdecho %temp%输出是相同的C:\Users\OD42B~1.BOR\AppData\Local\Temp(但cd %temp%在 cmd 中有效)。
TEMPUI 中的环境变量设置正确(显示的值类似于c:\users\o.borolongprofilename\AppData\Local\Temp)。
但是,当我尝试使用 UI进行编辑时,TEMP会显示值。%USERPROFILE%\AppData\Local\TempTEMP
PowerShellget-childitem env:userprofile显示全名,如c:\users\o.borolongprofilename(惊喜)。
我刚刚检查了 PowerShell 7 rc2,但结果是一样的:cd $env:Temp不起作用。
感谢你们对我的帮助。我找到了@Smock 评论链接提供的答案:
cd (gi $env:temp).fullname