Windows-Server-2012

PowerShell Remove-Item 無法處理聯結

  • June 18, 2015

Windows Server 2012 使用 PowerShell 在 temp 文件夾中創建日誌文件:

$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)。有沒有辦法解決?

好的,在上面 Etan 的幫助下,我有一個解決方法。$env:Temp 返回一個短文件名路徑,它適用於 Remove-Item之外的許多東西。所以解決方法是使用 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

引用自:https://serverfault.com/questions/527381