PowerShell का उपयोग कर 15 दिनों से अधिक पुरानी फ़ाइलों को हटाएं



Answers

बस बस (पावरशेल वी 5)

Get-ChildItem "C:\temp" -Recurse -File | Where CreationTime -lt  (Get-Date).AddDays(-15)  | Remove-Item -Force
Question

मैं केवल उन फ़ाइलों को हटाना चाहता हूं जो 15 दिनों पहले किसी विशेष फ़ोल्डर में बनाए गए थे। मैं PowerShell का उपयोग करके यह कैसे कर सकता हूं?




असल में, आप दिए गए पथ के नीचे फ़ाइलों पर फिर से चलते हैं, वर्तमान समय से मिली प्रत्येक फ़ाइल के CreationTime घटाते हैं, और परिणाम की Days संपत्ति के विरुद्ध तुलना करते हैं। - -WhatIf स्विच आपको बताएगा कि फ़ाइलों को वास्तव में हटाए बिना क्या होगा (कौन सी फाइलें हटा दी जाएंगी), फ़ाइलों को वास्तव में हटाने के लिए स्विच को हटा दें:

$old = 15
$now = Get-Date

Get-ChildItem $path -Recurse |
Where-Object {-not $_.PSIsContainer -and $now.Subtract($_.CreationTime).Days -gt $old } |
Remove-Item -WhatIf



Esperento57 की स्क्रिप्ट पुराने PowerShell संस्करणों में काम नहीं करती है। यह उदाहरण करता है:

Get-ChildItem -Path "C:\temp" -Recurse -force -ErrorAction SilentlyContinue | where {($_.LastwriteTime -lt  (Get-Date).AddDays(-15) ) -and (! $_.PSIsContainer)} | select name| Remove-Item -Verbose -Force -Recurse -ErrorAction SilentlyContinue



$limit = (Get-Date).AddDays(-15)
$path = "C:\Some\Path"

# Delete files older than the $limit.
Get-ChildItem -Path $path -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force -Recurse

यह पुराने फ़ोल्डर और सामग्री को हटा देगा।




Related