Windows'ta N Günden Daha Eski Dosyaları Otomatik Olarak Silme - Winhelponline

How Delete Files Older Than N Days Automatically Windows Winhelponline

Windows 10, içindeki eski dosyaları silerek yer açmak için yerleşik özelliklere sahiptir. % temp% dizin ve İndirilenler Klasör. Windows 10 Ayarları, otomatik olarak bir seçenek ('Depolama') içerir. geçici dosyaları temizler uygulamalarınız kullanmıyor, İndirilenler'deki son x gün içinde değiştirilmemiş dosyalar veya Geri Dönüşüm Kutusunda x gündür bulunan dosyalar.



Windows 10 depolama ayarları temizleme seçenekleri



Ayrıca, Disk Temizleme aracı içindeki dosyaları temizler. % temp% erişilmemiş olan dizin son 7 gün .



Ancak, Disk Temizleme ve Depolama ayarları sadece hedefle % temp% ve İndirilenler klasörler. Sizin gibi 'özel' bir klasör konumundaki belirli bir gün sayısından daha eski dosyaları silmek için Belgeler klasörü, şu üç yöntemden birini kullanmanız gerekir:

Windows'ta N Günden Eski Dosyaları Otomatik Olarak Silme

Aşağıdaki yöntemlerden bazıları, gerekliliğinize göre 'daha eski' dosyaları belirlemek için temel olarak dosyaların 'oluşturulma tarihi' veya 'değiştirilme tarihi' özelliğini kullanmanıza izin verir.

Yöntem 1. Dosya Gezgini'ni Kullanarak ‘N’ Günden Daha Eski Dosyaları Silin

Windows Arama'yı kullanarak, seçilen bir tarih aralığına göre veya belirli bir tarihten daha eski dosyalara göre dosyaların listesini kolayca alabilirsiniz.



  1. Eski dosyaları silmek istediğiniz klasörü açın.
  2. Arama kutusuna tıklayın veya klavyede F3 düğmesine basın.
  3. Değiştirilme tarihi düğmesini tıklayın ve açılır seçeneklerden birini seçin, 'Geçen hafta' deyin.
    Windows'ta x günden eski dosyaları sil
  4. Windows Arama sonuçları anında filtreleyecektir. Silmek istediğiniz dosyaları seçin ve klavyenizdeki Sil tuşuna basın.

Önemli: Varsayılan olarak, Windows araması geçerli klasör VE tüm alt klasörlerdeki dosyaları arar. Aramaları sınırlamak için sadece mevcut klasör , Arama araç çubuğundaki / şeridindeki 'Geçerli klasör' düğmesine tıklayın.

Gelişmiş Arama Sorgusu: 'Tarih' Operatörleri

Önceden ayarlanmış tarih aralığı seçenekleri size uymuyorsa, özel bir arama sorgusu yazabilirsiniz. Arama kutusuna, dosyaları özel bir tarih aralığından filtrelemek için aşağıdakileri yazın:

tarih değiştirildi: 1/1/2017 .. 12/31/2017

Bu, söz konusu tarih aralığında değiştirilmiş dosyaları bulur. Ayrıca kullanabilirsiniz tarih oluşturuldu: Erişilen tarih: veya tarih: (özellikle kamera görüntüleri için) operatörleri. Bunu not et tarih: operatör, kamera tarafından kaydedilen tarih meta verilerini (EXIF) kullanır.

İLİŞKİLİ: Windows'ta İki Tarih Arasında Oluşturulan Dosyaları Arama

1 Kasım 2017'den sonra değiştirilmemiş dosyaları bulmak için küçüktür ( < ) simgesiyle datemodifed: operatör, aşağıdaki gibi:

tarih değiştirildi:<11/1/‎2017

Windows'ta x günden eski dosyaları sil

Listeden dosyaları seçin ve silin.

İpucu: Tarih aralığını manuel olarak yazmak yerine yazın değiştirilme tarihi: veya tarih oluşturuldu: veya Erişilen tarih: veya tarih: işleci arama kutusuna getirin ve Dosya Gezgini'nin sizin için tarih seçiciyi göstermesine izin verin. Daha sonra açılır pencereden bir tarih veya tarih aralığı seçebilirsiniz. Bir tarih aralığı belirlemek için ilk tarihi seçin ve imleci uygun alana sürükleyin.

Her seferinde bir arama sorgusu yapmak yerine eski dosyaları otomatik olarak silmek isterseniz, bir toplu iş dosyası veya PowerShell oluşturmanız gerekir.


Yöntem 2: Komut İstemi Kullanarak ‘N’ Günden Eski Dosyaları Silin

ForFiles konsol aracı (Windows 7, Windows 8, Windows 8.1 ve Windows 10'da) bir dosya veya dosya kümesini seçer ve bu dosya veya dosya kümesi üzerinde bir komut yürütür.

Forfiles Yardımı - Komut satırı anahtarları / P - Aramaya başlamak için yolu gösterir. Varsayılan klasör, geçerli çalışma dizinidir (.). / S - Dosyaların alt dizinlerde yinelenmesi talimatını verir. 'DIR / S' gibi. / D - Son değiştirilme tarihine sahip dosyaları seçin. Örneğin, -365 bir yıldan fazla bir süre önce, -30 ise bir ay önce anlamına gelir. / C 'komut' - Her dosya için yürütülecek komutu belirtir. Komut dizeleri çift tırnak içine alınmalıdır. Varsayılan komut 'cmd / c echo @file'dır. Aşağıdaki değişkenler komut dizesinde kullanılabilir: @file - dosyanın adını döndürür. @fname - dosya adını uzantısız döndürür. @ext - yalnızca dosyanın uzantısını döndürür. @path - dosyanın tam yolunu döndürür. @relpath - dosyanın ilgili yolunu döndürür. @isdir - dosya türü bir dizinse 'TRUE' ve dosyalar için 'FALSE' döndürür. @fsize - dosyanın boyutunu bayt cinsinden döndürür. @fdate - dosyanın son değiştirilme tarihini döndürür. @ftime - dosyanın son değiştirilme zamanını döndürür.

Bu araç tarafından desteklenen komut satırı bağımsız değişkenlerinin tam listesini görüntülemek için şunu yazın: FORFILES /? Komut İstemi'nde.

ForFiles kullanarak belirli gün sayısından daha eski dosyaları bulmak ve silmek için, bir Komut İstemi penceresi açın ve aşağıdaki komutlardan birini yazın:

ForFiles / p 'D:  Komut Dosyalarım' / s / d -30 / c 'cmd / c del @path'

-veya-

ForFiles / p 'D:  Scriptlerim' / s / d -30 / c 'cmd / c del @file'

Windows forfiles.exe forfiles komutunda x günden eski dosyaları sil

Yukarıdakiler, klasör yolunun D: Komut Dosyalarım ve 30 günden eski dosyaları silmek istiyorsunuz. Klasör yolunu ve gün sayısını ihtiyaçlarınıza göre özelleştirin.

Komut başarılı olursa çıkış mesajı görmezsiniz. Belirtilen kriterlere uyan dosya yoksa, mesajı görürsünüz HATA: Belirtilen arama kriterlerine sahip dosya bulunamadı .

Ek ipucu: Dosyaları silmeye çalışmadan önce bir kuru çalıştırma gerçekleştirmek, belirtilen kriterler için hangi dosyaların etkilendiğini kontrol etmek için komutu değiştirin. of ile dışarı attı , aşağıda olduğu gibi:

ForFiles / p 'D:  Komut Dosyalarım' / s / d -30 / c 'cmd / c echo @path'

-veya-

ForFiles / p 'D:  Komut Dosyalarım' / s / d -30 / c 'cmd / c echo @file'

forfiles eski dosyaları sil x gün echo

İsteğe bağlı olarak, yukarıdaki komutla bir toplu iş dosyası oluşturabilirsiniz. Veya, Görev Zamanlayıcı'yı kullanarak komutu belirli aralıklarla otomatik olarak çalıştırmak için.

Görev Zamanlayıcı kullanarak komutu otomatik olarak çalıştırın

  1. Görev Zamanlayıcı'yı başlatın.
  2. Görev Zamanlayıcı'da 'Görev Zamanlayıcı Kitaplığı' nı tıklayın
  3. Sağ bölmedeki 'Görev oluştur' bağlantısını tıklayın.
  4. 'Görev Oluştur' iletişim kutusunda 'Genel' sekmesini seçin.
  5. Görevin adından bahsedin, 'Belgelerimdeki eski dosyaları sil' deyin
  6. Tetikleyiciler sekmesine ve Yeni'ye tıklayın.
  7. 'Görevi başlat' açılır liste kutusunun altındaki açılır listeden 'Bir programa göre' seçeneğini seçin.
  8. Görevi günlük, haftalık veya aylık olarak çalıştırmayı seçebilirsiniz. Haftalık seçerseniz, görevin tetiklenmesini istediğiniz haftanın günlerini seçin.
  9. Tamamlandığında, Tamam düğmesini tıklayın.
  10. 'İşlemler' sekmesine tıklayın ve 'Yeni…' düğmesine tıklayın.
  11. 'Yeni Eylem' penceresinde aşağıdakileri doldurun:
    Eylem: Bir programı başlatın Program / komut dosyası: C: ​​ Windows  System32  ForFiles.exe Bağımsız değişkenler ekleyin (isteğe bağlı): / p '% userprofile%  Documents' / s / d -30 / c 'cmd / c del @file'

    Windows görev zamanlayıcıda x günden eski dosyaları sil

  12. Tamam'ı tıklayın.

Çalıştırıldığında, bilgisayarınızdaki dosyaları silen yeni bir görev oluşturulur. Belgeler son 30 gün içinde değiştirilmemiş klasör.


Yöntem 3: Komut Dosyasını kullanarak N günden eski dosyaları silin

Spiceworks forum kullanıcıları, belirli bir klasör yolunda N günden daha eski dosyaları yinelemeli olarak silebilen VBScripts'e sahiptir. İşte basit bir komut dosyası:

Hata Devam Ettirildiğinde Sonraki Ayarla oFileSys = WScript.CreateObject ('Scripting.FileSystemObject') sRoot = 'C:  Eski Dosyalara Giden Yol' 'Bugün dosyaları aramak için yol kökü = Tarih nMaxFileAge = 3' Bundan daha eski dosyalar (gün olarak) Silinecek Dosyayı Sil (sRoot) Fonksiyonu DeleteFiles (ByVal sFolder) Set oFolder = oFileSys.GetFolder (sFolder) Set aFiles = oFolder.Files aSubFolders = oFolder.SubFolders Ayarla aFiles dFileCreated = FormatDateTime (2'.DateTime) dosyası için ) Eğer DateDiff ('d', dFileCreated, bugün)> nMaxFileAge Sonra file.Delete (True) End If Next If After aSubFolders'daki her klasör için DeleteFiles (klasör.Yol) Sonraki Son İşlevi

Kaynak: Eski Dosyaları Sil ve Alt Klasörleri Boşalt - Komut Dosyası Merkezi - Spiceworks

ÖNEMLİ! Yukarıdaki komut dosyası, 'Son Değiştirilme Tarihi' yerine öğelerin 'Oluşturulduğu Tarih' özelliğini dikkate alır. Daha önce yapılmamış dosyaları silmek isterseniz değiştirilmiş son N gün içinde, komut dosyasında aşağıdaki satırı değiştirin:

dFileCreated = FormatDateTime (file.DateCreated, '2')

-e

dFileCreated = FormatDateTime (file.DateLastModified, '2')

3 günden eski dosyaları temizler. Tek yapmanız gereken, komut dosyasında gerektiği gibi klasör yolunu ve maksimum dosya yaşı parametrelerini değiştirmek ve .vbs uzantısı ve çalıştırın. Komut dosyasının belirtilen klasör ve alt klasörler üzerinde yinelemeli çalıştığını unutmayın.

İşte N günden eski dosyaları silen ve boş alt klasörleri özyinelemeli olarak otomatik olarak temizleyen başka bir komut dosyası. Görmek Maksimum yaştan (gün olarak) daha eski dosyaları sil - Komut Dosyası Merkezi - Spiceworks

İLİŞKİLİ: Windows'ta Boş Klasörler Nasıl Hızlı Bir Şekilde Bulunur ve Silinir


Yöntem 4: PowerShell Kullanarak ‘n’ günden eski dosyaları silin

Üçüncü seçenek, eski dosyaları bulmak ve silmek için kullanışlı bir cmdlet'e sahip olan PowerShell'i kullanmaktır.

PowerShell'i başlatın ( powershell.exe) ve aşağıdaki komutu yazın:

Get-ChildItem -Path [klasör_path] -Dosya -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Kaldır-Öğe-Kuvvet

Misal:

Get-ChildItem -Yol 'D:  Raporlar' -Dosya -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Kaldır-Öğe-Kuvvet

Çevre değişkeni içeren yolları kullanmak için % userprofile% belgeler , aşağıdaki sözdizimini kullanın:

Get-ChildItem -Yol '$ env: userprofile  belgeler' -Dosya -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Kaldır-Öğe-Kuvvet

(Not: Örnekteki klasör adı, kullanıcı profilinizin Belgeler Klasör. Klasör adını ve yolunu ihtiyaçlarınıza göre değiştirin.)

Kullandığımızdan beri -Dosya parametresi, yalnızca dosyalar için çalışır. Böylece son n gün içerisinde yazılmamış alt klasörlerin silinmesi engellenmiştir.

Yukarıdaki komutun üç bölümü vardır:

  1. Get-ChildItem cmdlet, Belgeler klasörünüzdeki dosyaların listesini alır.
  2. Daha sonra çıktı borulanır Nerede Nesne cmdlet'e göre filtreleme yapılır, yalnızca son olarak değiştirilmemiş dosyaları seçer. x gün sayısı (bu örnekte, 30 gün ).
  3. Son olarak, çıktıyı Öğeyi kaldırmak cmdlet, sırayla önceki iki cmdlet tarafından döndürülen eski dosyaları siler.

İpucu 1: Eşleşen dosyaları listeleyin, onları silmeyin mi?

Eşleşen dosyaları ve klasörleri silmeden listelemek için, | Öğeyi kaldırmak değiştirmek.

Get-ChildItem -Path [klasör_path] -Dosya -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))}

İpucu 2: Öğeleri silerken hataları önleyin

Hata mesajlarının (öğelere erişirken veya silerken) konsolda görüntülenmesini önlemek için, -ErrorAction Sessizce Devam Et parametre.

Get-ChildItem -Path [klasör_path] -Dosya -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remove-Item -ErrorAction SilentlyContinue -Force

Eski dosyaları da sil klasörler

Yukarıdaki komutların yalnızca eski dosyaları sildiğini, ancak son olarak yazılmamış alt klasörleri silmediğini unutmayın. x günler. Eski klasörleri kaldırmak için, -Dosya Daha önce açıklanan komutlardan gelen argüman.

Misal:

Get-ChildItem -Yol '$ env: userprofile  belgeler' -Recurse -Force | Nerede-Nesne {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Kaldır-Öğe-Kuvvet

(Bakınız: Microsoft sitesinde Get-ChildItem cmdlet belgeleri)

Önemli: -Keşif parametresi, PowerShell'i dosyaları yinelemeli olarak (alt dizinlerde) almaya yönlendirir. Alt klasörlerde dosya aramayı önlemek için, -Keşif seçeneği, böylece yalnızca geçerli klasör işlenir.


Küçük bir istek: Bu gönderiyi beğendiyseniz, lütfen paylaşın?

Sizden 'küçük' bir paylaşım, bu blogun büyümesine ciddi şekilde yardımcı olacaktır. Bazı harika öneriler:
  • İğnele!
  • En sevdiğiniz blog + Facebook, Reddit ile paylaşın
  • Cıvılda!
Desteğiniz için çok teşekkür ederim okuyucum. Zamanınızın 10 saniyesinden fazla sürmez. Paylaşım düğmeleri hemen aşağıda. :)