我不知道.bat支持刪除N小時以前的文件嗎?我有一個腳本可以刪除N天以前的文件,但無法找到基於小時的命令。如果.bat文件沒有小時函數,我們可以使用PowerShell腳本來做到這一點嗎?我正在清理C:\ temp(Windows Server)中超過6小時的所有文件。批處理或Powershell腳本清理超過6小時的文件?
回答
你可以很容易地使用powershell獲得這些信息。
您需要使用Get-ChildItem(帶遞歸參數)並過濾掉文件夾。
get-childitem 'C:\Temp' | Where-Object PSIsContainer -eq $false
請參閱下面的腳本以獲得入門基礎。
$Files = get-childitem 'C:\Temp' | Where-Object PSIsContainer -eq $false
$LimitTime = (Get-Date).AddHours(-6)
$Files | ForEach-Object {
if ($_.CreationTime -lt $LimitTime -and $_.LastWriteTime -lt $LimitTime) {
Remove-Item -Path $_.FullName -Force -WhatIf
}
}
要注意 你將需要刪除-WhatIf該腳本實際刪除任何東西。
編輯:
感謝andyb評論,我刪除贊成時間跨度爲一個直接的日期比較。
傳統批處理文件非常困難,但在PowerShell中幾乎微不足道。您可以通過簡單地將012小時添加到由Get-Date
返回的對象來確定'6小時前'的日期&。之後,如果找到文件並將LastWriteTime
屬性與(get-date).AddHours(-6)
進行比較並將結果傳送至remove-item
,那麼這只是一個問題。
get-childitem -path <path> |
where-object { -not $_.PSIsContainer -and ($_.LastWriteTime -lt (Get-Date).AddHours(-6)) } |
remove-item -force
在該檢查中添加CreationTime也是一件好事。如果文件被移動/複製到文件夾上,LastWriteTime將不會更新。我的文件的creationTime日期設置爲2017年9月(我移動了它們),而他們的LastWriteTime從2004年開始。 –
理解創建時間和上次寫入時間之間的差異很好,但在這種情況下,我不認爲它們是都需要。問題是關於從臨時文件夾中清除文件;我無法想象我會將舊文件移動到我知道自動清理的臨時文件夾中。特別是如果這些文件具有很多價值。 – andyb
在* nix土地上爲那些貧窮的人留下一個想法,他們必須與上次訪問,上次修改時間和上次更改的時間戳進行抗衡! – andyb
- 1. 批處理文件v PowerShell腳本
- 2. 批處理文件執行Powershell腳本
- 3. VBScript,批處理或PowerShell腳本?
- 4. 使用批處理或PowerShell腳本的備份文件夾
- 5. 批處理腳本來處理文件
- 6. 運行批處理腳本,PowerShell腳本
- 7. 清理批處理文件
- 8. 批處理文件腳本
- 9. 批處理腳本檢查和清理
- 10. 通過批處理文件啓用IIS 6腳本工具
- 11. 通過批處理文件運行WOL PowerShell腳本
- 12. 如何在批處理腳本中運行powershell腳本和批處理腳本?
- 13. AD用戶文件夾清理批處理腳本
- 14. 通PowerShell的變量批處理腳本
- 15. 通過批處理腳本
- 16. powershell命令invoke-sqlcmd批處理腳本
- 17. 批處理文件有錯誤,從Powershell腳本調用時不允許批處理文件完成
- 18. 獲取文本文件大小的批處理腳本
- 19. 使用批處理腳本逐行解析文本文件(批處理文件)
- 20. 集循環在我的批處理腳本打開批處理文件腳本
- 21. 批處理文件 - 使用批處理腳本
- 22. 在批處理文件中運行批處理腳本
- 23. PowerShell或批處理EXITCODE 7zip
- 24. 從批處理文件運行Powershell腳本中的參數
- 25. 在PowerShell腳本中捕獲批處理文件的輸出
- 26. 使用批處理腳本清除RAM
- 27. attrib的批處理文件腳本
- 28. 複製文件的批處理腳本
- 29. 批處理文件 - 關閉通過批處理文件過程
- 30. 批處理腳本
不需要TimeSpan;只需使用'(Get-Date).AddHours(-6)' – andyb
傻了,我用你的建議改進了我的答案。 –