Automatically responding yes to forfiles
22,705
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: https://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
Related videos on Youtube
Author by
PHLiGHT
Updated on September 17, 2022Comments
-
PHLiGHT over 1 year
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)?
-
Admin over 13 yearswhat happens when you try echo y | before it?
-
Admin over 6 yearsNote that contrary to what MS docs say,
/m *.*
inforfiles
does not match all files. It will only match files whose names have an extension. If you want to match all files, you need/m *
. Or just omit/m
entirely, since/m *
is the default.
-
-
100rabh over 13 yearsMight want to try
H:\SHARED\Scans\
seems the.DS_STORE
is getting appended to the current folder @PHLiGHT -
DavidPostill almost 8 yearsPlease read the question again carefully. Your answer does not answer the original question.