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