如何在PowerShell中更改为临时目录?

如何在PowerShell中更改为临时目录?,powershell,temp,Powershell,Temp,在PowerShell中,我可以使用命令$Env:TEMP回显%TEMP%的值。以下是我的机器上的输出: PS> $Env:temp C:\Users\IAIN~1.COR\AppData\Local\Temp 当我尝试使用cd命令更改目录时,收到以下错误: PS> cd $Env:temp Set-Location : An object at the specified path C:\Users\IAIN~1.COR does not exist. At line:1 cha

在PowerShell中,我可以使用命令
$Env:TEMP
回显
%TEMP%
的值。以下是我的机器上的输出:

PS> $Env:temp
C:\Users\IAIN~1.COR\AppData\Local\Temp
当我尝试使用
cd
命令更改目录时,收到以下错误:

PS> cd $Env:temp
Set-Location : An object at the specified path C:\Users\IAIN~1.COR does not exist.
At line:1 char:3
+ cd <<<<  $Env:temp
    + CategoryInfo          : InvalidArgument: (:) [Set-Location], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetLocationCommand
PS>cd$Env:temp
设置位置:指定路径C:\Users\IAIN~1.COR上的对象不存在。
第1行字符数:3

+cd您不需要直接访问
%TEMP%
环境变量

.NET提供了一个
GetTempPath
方法作为更通用的解决方案

$TempDir = [System.IO.Path]::GetTempPath()
cd $TempDir
在我的计算机上,这将更改为目录
C:\Users\Iain.CORP\AppData\Local\Temp

以下人士的评论:

此方法检查中是否存在环境变量 按照以下顺序并使用找到的第一个路径:

  • TMP环境变量指定的路径

  • 由TEMP环境变量指定的路径

  • USERPROFILE环境变量指定的路径

  • Windows目录


  • 感谢分享该技术。

    首先解析其全名,如下所示打开
    $env:temp

    cd (gi $env:temp).fullname
    

    cd$env:temp


    这对我有用。

    谢谢,这对我有用。最后我决定使用它,因为它比依赖一个环境变量更健壮。有关更多详细信息,请参阅我的答案。正如我在问题中所演示的,这在我的环境中是失败的。它在你身上的回报是什么?我认为在
    $Env:TEMP
    返回一个而不是长文件名的环境中,此方法将失败。