Link to home
Create AccountLog in
Scripting Languages

Scripting Languages

--

Questions

--

Followers

Top Experts

Avatar of ammounpierre
ammounpierre

Delete old files based on date ?
I have files that I need to get rid of ...
But I would like to delete the files before a certain date (created).
can I specify a range ?
let's say delete files between 10Jan and 14Jan
thanks.

Zero AI Policy

We believe in human intelligence. Our moderation policy strictly prohibits the use of LLM content in our Q&A threads.


Avatar of Aard VarkAard Vark🇦🇺

Definitely want to delete files created before a certain date, or modified before a certain date? For example, a text file created on the 01/01/2009 could have been modified on 02/02/2009, but still created at the older date. If you want to get rid of files which aren't being modified for a certain amount of time (using batch), try using the ForFiles command (http://www.ss64.com/nt/forfiles.html). I'm not sure if there's any easy way to delete files created before a certain date in a batch file (VBS or Powershell could do this easily).

Might also be worth looking at https://www.experts-exchange.com/questions/20947290/Delete-All-Contents-of-Folder-Older-than-7-Days.html.
SET DIRECTORY=c:\temp
:: To test use ForFiles /p %DIRECTORY% /S /M *.* -d -16/09/2008 -c "cmd /c @echo @path"
ForFiles /p %DIRECTORY% /S /M *.* -d -16/09/2008 -c "cmd /c @del /q @path"

Open in new window


ASKER CERTIFIED SOLUTION
Avatar of t0t0t0t0🇬🇧

Link to home
membership
Log in or create a free account to see answer.
Signing up is free and takes 30 seconds. No credit card required.
Create Account

Avatar of t0t0t0t0🇬🇧

By the way, you can also call the batch file from within another batch file. But remember to pass it both dates as before ie,

   :
   CALL delrange 26/01/2008 28/02/2009
   :

NOTE: I've condensed the last line.... otherwise it's the same as the code above.

@echo off
setlocal enabledelayedexpansion
set d1=%1
set d2=%2
set d1=!d1:~6,4!!d1:~3,2!!d1:~0,2!
set d2=!d2:~6,4!!d2:~3,2!!d2:~0,2!

for %%a in (*.*) do (
   set fn=%%a
   set fd=%%~ta
   set fd=!fd:~6,4!!fd:~3,2!!fd:~0,2!
   if !fd! GEQ !d1! if !fd! LEQ !d2! del !fn!
)

Reward 1Reward 2Reward 3Reward 4Reward 5Reward 6

EARN REWARDS FOR ASKING, ANSWERING, AND MORE.

Earn free swag for participating on the platform.

Scripting Languages

Scripting Languages

--

Questions

--

Followers

Top Experts

A scripting language is a programming language that supports scripts, programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator. Scripting languages are often interpreted (rather than compiled). Primitives are usually the elementary tasks or API calls, and the language allows them to be combined into more complex programs. Environments that can be automated through scripting include software applications, web pages within a web browser, the shells of operating systems (OS), embedded systems, as well as numerous games. A scripting language can be viewed as a domain-specific language for a particular environment; in the case of scripting an application, this is also known as an extension language.