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