1

У меня есть каталог, который настроен как \ сервер \\ год \ месяц \ день \ x, .../y и .../z. Мне нужен пакетный файл, который будет удалять видео, расположенные в папке x в каталоге каждого пользователя для каждого месяца и года в зависимости от срока хранения (например, 60 дней). Затем удалите файлы в Y на основе другого периода (IE 730 дней)

У меня есть forfiles -p "\\server\username\year\month\day\x" -s -m *.* -d -60 -c "cmd /c del @path" но я не уверен, как это сделать Цикл в пути для поиска всех подкаталогов из сетевой папки, чтобы найти только X папок.

Есть ли способ сделать это без использования атрибута «Создано на дату», на случай, если дата / время камеры были неверными при съемке видео. Заранее спасибо за помощь! (Если кто-нибудь знает синтаксис, который я мог бы изучить, я был бы очень признателен)

1 ответ1

0

forfiles не принимает UNC-пути AFAIK, вам нужно связать этот сетевой адрес с буквой диска (например, «S:» в качестве сервера)

net use S: \\server\username\year\month\day\ /PERSISTENT:YES

Затем протестируйте свою первую команду, используя echo вместо del как @JosefZ предложил в своем комментарии:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE echo @path"

Вам не нужна общая маска *.* , Это неявно. Используйте ключ -m только для фильтрации определенных классов файлов (например, *.mp4).

Как только вы довольны результатами, сделайте это:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE del /f @path"

forfiles -p S:\y -s -d -730 -c "cmd /c if @isdir==FALSE del /f @path"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .