PowerShell删除项目不能处理路口

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

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

假设一个人的脚本已经运行,并且你想在脚本开始时使用类似下面的方法删除这个日志文件:

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

它不起作用,因为Remove-Item似乎在$LogFile的AppData函数上大胆:

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

看起来有点脑死亡Remove-Item不理解路口(AppData)。 有没有办法解决?

好的,在上面的Etan的帮助下,我有一个解决方法。 $ env:Temp返回一个简短的文件名称path,它适用于许多除了 删除项目的东西。 所以解决方法是使用GetFullPath将其转换为长path,然后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