簡體   English   中英

使用 powershell 刪除鎖定的文件

[英]Delete a locked file using powershell

這是一個刪除超過 X 天的文件/文件夾的腳本。 但后來我想如果其他應用程序正在使用任何文件或文件夾怎么辦。 我還沒有遇到這樣的問題,但我不認為Remove-Item不能刪除文件/文件夾,如果它被其他應用程序鎖定/使用。 無論如何使用 powershell 我們可以刪除鎖定的文件嗎?

Get-ChildItem "folder path" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}| Remove-Item -Recurse -Force -Confirm:$false

在 Windows 上,如果文件被鎖定,您可以調用 Win32 API MoveFileEx要求 Windows 在下次重新啟動時將其刪除。

    $Win32 = Add-Type -Passthru -Name Win32 -MemberDefinition '
    [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
    public static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);'

    $Win32::MoveFileEx($path, [NullString]::Value, 4 <# DelayUntilReboot #> )
Remove-Item

也將刪除鎖定的文件。 請驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM