Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Script to Delete old log files

Posted on 2009-04-06
5
Medium Priority
?
1,243 Views
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
Next

Open in new window

0
Comment
Question by:jonmclean2
  • 3
  • 2
5 Comments
 
LVL 38

Expert Comment

by:Shift-3
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

0
 
LVL 38

Accepted Solution

by:
Shift-3 earned 2000 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.
0
 
LVL 1

Author Comment

by:jonmclean2
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.
0
 
LVL 1

Author Comment

by:jonmclean2
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.
0
 
LVL 1

Author Comment

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

Featured Post

Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

Question has a verified solution.

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

If you have come across a situation where you need to find some EDB mailbox recovery techniques, then here you will find the same. In this article, we will take you through three techniques using which you will be able to perform EDB recovery. You …
Mailbox Corruption is a nightmare every Exchange DBA wishes he never has. Recovering from it can be super-hectic if not entirely futile. And though techniques like the New-MailboxRepairRequest cmdlet have been designed to help with fixing minor corr…
This video discusses moving either the default database or any database to a new volume.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…
Suggested Courses

916 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