Script to Delete old log files

Posted on 2009-04-06
Last Modified: 2012-08-13
Basically I'm looking for a script to delete all log files in the C:\Windows\System32\LogFiles\ directory that are older than 1 month. I found the script below, but wasn't sure how to taylor it to get a dynamic date. Also I wasn't sure if I could just change "AND Drive = 'D:'" to ='C:\Windows\System32\LogFiles\" Thanks!
strDate = "20031102000000.000000+000"
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * From CIM_DataFile Where CreationDate < '" & strDate & "'" & _
        " AND Drive = 'D:'")
For Each objFile in colFiles
    Wscript.Echo objFile.Name

Open in new window

Question by:jonmclean2
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
LVL 38

Expert Comment

ID: 24078324
It might be easier to customize the vbscript from this article.

You could also use the forfiles command in a batch script, e.g.

forfiles /p "%systemroot%\System32\LogFiles" /m *.log /c "cmd /c ECHO del @file" /d -30

Open in new window

LVL 38

Accepted Solution

Shift-3 earned 500 total points
ID: 24078390
Whoops, change @file to @path.  

As written, the command just echoes the paths of the files.  Once you've tested it successfully, remove the ECHO to execute the deletions.

Author Comment

ID: 24099868
Forfiles /p "C:\WINDOWS\System32\LogFiles" /m *
.log /c "cmd /c ECHO del @path" /d -30

'Forfiles' is not recognized as an internal or external command,
operable program or batch file.

Author Comment

ID: 24099926
Apologies i was attempting to test it on my local machine. When I run it on the server I get this.

C:\Documents and Settings\baerme.SAIC-US-EAST>forfiles /p "%systemroot%\System32
\LogFiles\W3SVC400752808\" /m *.log /c "cmd /c ECHO del @path" /d -30
ERROR: Invalid argument/option - 'del'.
Type "FORFILES /?" for usage.

Author Comment

ID: 24100277
forfiles /p "%systemroot%\System32\LogFiles\W3SVC400752808\" /m *.log /c "cmd /c if @isdir==FALSE echo del @file & del @file" /d -9 Worked

Featured Post

Comparison of Amazon Drive, Google Drive, OneDrive

What is Best for Backup: Amazon Drive, Google Drive or MS OneDrive? In this free whitepaper we look at their performance, pricing, and platform availability to help you decide which cloud drive is right for your situation. Download and read the results of our testing for free!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Changing "From" field - Exchange 2013 5 58
SBS 2008 active sync issue 2 53
CAL for Disabled accounts 4 57
Bing Maps Add-in in Exchange 2016 1 78
Scam emails are a huge burden for many businesses. Spotting one is not always easy. Follow our tips to identify if an email you receive is a scam.
Find out what you should include to make the best professional email signature for your organization.
To show how to create a transport rule in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Mail Flow >> Rules tab.:  To cr…
In this Micro Video tutorial you will learn the basics about Database Availability Groups and How to configure one using a live Exchange Server Environment. The video tutorial explains the basics of the Exchange server Database Availability grou…

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question