Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking to automatically delete files older than 7 days old with forfiles.

The code below works when I do it manually and respond yes to deleting the files. How can I incorporate the yes into this?

This is the output:

E:\>forfiles -p "H:\SHARED\Scans" -s -m *.* -d -7 -c "cmd /c del @path"
Could Not Find H:\SHARED\Scans\.DS_Store
H:\SHARED\Scans\XXX\DOC006.XSM\*, Are you sure (Y/N)?
share|improve this question
1  
what happens when you try echo y | before it? – barlop Jan 5 '11 at 16:30

You could try adding in a /Q /S, though be aware that this may not in fact do what you really want it to:

/Q Quiet mode, do not ask if ok to delete on global wildcard
/S Delete specified files from all subdirectories

E:\forfiles -p "H:\SHARED\Scans" -s -m . -d -7 -c "cmd /c del /Q /S @path"

You are probably better off either using CSCRIPT (with your choice of VBScript or JScript) or PowerShell. Check out this answer from StackOverflow: http://stackoverflow.com/questions/1575493/how-to-delete-empty-subfolders-with-powershell

Here is some vbscript to accomplish a similar task:

Dim fso, folder, folders
Set fso = CreateObject("Scripting.FileSystemObject")
Set parent = fso.GetFolder("H:\SHARED\Scans")
Set folders = parent.SubFolders

' delete any folder older than 7 days
For Each folder in folders
    If Abs(DateDiff("d",Date, folder.DateCreated)) > 7 Then
        folder.Delete(True) 'force delete
    End If
Next
share|improve this answer
    
Might want to try H:\SHARED\Scans\ seems the .DS_STORE is getting appended to the current folder @PHLiGHT – Sathya Jan 5 '11 at 17:33

Verify that the files are not Hidden or system files.

If System try:

forfiles -p "H:\SHARED\Scans" -s -m *.* -d -7 -c "cmd /c del /a-s @path"

If Hidden Try:

forfiles -p "H:\SHARED\Scans" -s -m *.* -d -7 -c "cmd /c del /a-h @path"
share|improve this answer
    
Please read the question again carefully. Your answer does not answer the original question. – DavidPostill Jul 13 at 19:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .