Jadi dalam pekerjaan melakukan backup, saya memerlukan skrip batch yang memungkinkan saya untuk menghapus file dalam direktori tertentu, yang lebih tua dari katakanlah, 3 hari. Skrip ini akan ditetapkan sebagai tugas terjadwal untuk dijalankan pada waktu yang ditentukan setiap hari.
windows-server-2008-r2
batch-file
Chiggins
sumber
sumber
Jawaban:
Jika PowerShell dapat diterima (seharusnya, seperti yang diaktifkan secara default pada Server 2008+) coba ini:
Souce di sini .
sumber
Remove-Item $File -whatif | out-null
. Untuk dijalankan sebagai tugas sched, pekerjaan tersebut harus menentukan path lengkap ke powershell.exe dengan skrip Anda dinamai argumen.Di mana
-5
usia file yang ingin Anda hapus (5 hari atau lebih tua dalam hal ini). Script ini sedang menghapus.rar
file - jatuhkan-m *.rar
jika Anda ingin menghapus semua jenis file.sumber
Jika Anda bersikeras menggunakan file batch, Robocopy.exe adalah jawaban Anda. Ini cepat (multithreaded) dan sangat kuat. Untuk skenario Anda, Anda dapat menggunakan yang berikut ini sebagai panduan:
Ada daftar panjang opsi, silakan lakukan robocopy /? untuk melihat semuanya. Anda bahkan dapat menggunakannya untuk melakukan backup inkremental, penjadwalan, membuat profil cadangan, dll.
sumber
Saya suka menggunakan DelEn.exe untuk ini.
Delen - DELete ENhanced - adalah versi DEL yang lengkap. Ini mendukung wildcard dan direktori induk yang diperluas, serta filter tanggal, waktu dan ukuran. File dapat dikecualikan dari penghapusan.
sumber
Anda mungkin melihat DelAge32 milik Horst Schaeffer:
http://home.mnet-online.de/horst.muc/wbat32.htm#top
Perintah Anda bisa sesederhana:
Saya memiliki perintah ini berjalan sebagai tugas yang dijadwalkan.
sumber
Ini adalah skrip PowerShell yang saya tulis untuk melakukan apa yang Anda inginkan - ia melakukan sedikit lebih banyak juga. Saya menggunakannya untuk menghapus log dan file sementara lainnya.
purge-dem-logs.cmd
purgelogs.ps1:
sumber
Ini tidak akan berfungsi untuk komputer jarak jauh. Admin perlu mengelola banyak komputer. Di bawah ini adalah skrip yang dapat digunakan untuk menghapus folder di banyak komputer jarak jauh tanpa harus login ke sana.
Skrip di bawah ini akan menghapus folder yang lebih dari 15 hari. Anda dapat mengubah parameter $ hari.
D $ \ Program Files (x86) \ Research In Motion \ BlackBerry Enterprise Server \ Logs adalah jalur UNC untuk folder Blackberry Log. Anda dapat mengubah direktori tempat log / folder Anda berada.
Daftar semua nama server Anda dalam file servers.txt dan itu harus terletak di direktori yang sama dengan skrip ini
Simpan skrip sebagai .ps1 dan jalankan. Anda dapat menjadwalkannya melalui file batch. Dengan begitu Anda perlu menambahkan perintah Ubah Direktori di awal skrip.
Selamat bersenang-senang.
sumber
Sebagai pendekatan alternatif: alih-alih mengandalkan permintaan sistem file untuk mendapatkan waktu pembuatan file (dan memukul file yang sama selama beberapa hari, sampai habis), Anda bisa menambahkan file ke indeks Anda sendiri pada saat pembuatan. Indeks berpotensi menjadi sesederhana file bernama setelah tanggal pembuatan, disimpan di lokasi yang diketahui, dengan file per baris.
Jika Anda memiliki file aplikasi multithreaded / multi-proses, maka Anda mungkin ingin indeks Anda ditangani dengan cara yang lebih canggih.
Keuntungannya adalah bahwa Anda selalu memiliki daftar file yang relatif diproses sederhana yang dibuat pada hari tertentu yang dapat Anda ulangi, daripada harus bertanya pada sistem file berulang kali untuk detailnya.
(Ini akan bergantung pada aplikasi, dan pembuatan file, dikelola oleh Anda, dan bukan oleh pihak ketiga).
sumber