Я ищу, чтобы автоматически удалять файлы старше 7 дней с forfiles
.
Приведенный ниже код работает, когда я делаю это вручную и отвечаю да на удаление файлов. Как я могу включить да в это?
Это вывод:
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)?
windows
command-line
script
batch
PHLiGHT
источник
источник
/m *.*
вforfiles
не соответствует все файлы. Он будет соответствовать только файлам, имена которых имеют расширение. Если вы хотите сопоставить все файлы, вам нужно/m *
. Или просто опустить/m
полностью, так/m *
как по умолчанию.Ответы:
Вы можете попробовать добавить в / Q / S, хотя имейте в виду, что на самом деле это может не соответствовать тому, что вы действительно хотите:
Возможно, вам лучше использовать CSCRIPT (с вашим выбором VBScript или JScript) или PowerShell. Проверьте этот ответ от StackOverflow: https://stackoverflow.com/questions/1575493/how-to-delete-empty-subfolders-with-powershell
Вот некоторый VBScript для выполнения аналогичной задачи:
источник
H:\SHARED\Scans\
кажется, что.DS_STORE
он добавляется в текущую папку @PHLiGHTВ этом примере удаляются все файлы в папке «G: \ db_bk_copies» старше 3 дней, не запрашивая у пользователей подтверждения удаления (Вы уверены (Д / Н)?):
forfiles -p "G:\db_bk_copies" -s -m * /D -3 /C "cmd /c del /a-s @path"
источник
Убедитесь, что файлы не являются скрытыми или системными файлами.
Если система попробует:
Если скрыто, попробуйте:
источник