PowerShell Remove-Item 无法处理连接

PowerShell Remove-Item 无法处理连接

Windows Server 2012 使用 PowerShell 在临时文件夹中创建日志文件:

$LogFile = $env:temp + "\MigrateMyDocs.log"

假设某个脚本已经运行,并且您想要使用以下命令删除脚本开始时的日志文件:

If (Test-Path($LogFile)) {
    [void](Remove-Item -Path $LogFile -Force)
}

它不起作用,因为Remove-Item似乎在 AppData 函数中无效$LogFile

"C:\Users\IT0A9D~1.SUP\AppData\Local\Temp\1\MigrateMyDocs.log"

似乎有点Remove-Item不理解连接点(AppData)。有什么办法可以解决这个问题吗?

答案1

好的,在 Etan 的帮助下,我找到了一个解决方法。$env:Temp 返回一个简短的文件名路径,可用于很多事情除了 除去项目。因此,解决方法是使用 GetFullPath 将其转换为长路径,然后 Remove-Item 可以使用:

这不起作用:

$LogFile = $Env:Temp + "\Test.log"
"Hello, World" > $LogFile
Remove-Item $LogFile

这确实有效:

$LogFile =  [System.IO.Path]::GetFullPath($env:Temp + "\Test.log")
"Hello, World" > $LogFile
Remove-Item $LogFile

相关内容