2015-11-05 1 views
1

Мне хотелось бы знать, как вы можете удалить несколько файлов в разных папках с помощью командных команд.Удалить несколько файлов старше, чем 30 дней командный скрипт с подстановочным знаком

У меня есть следующий код, этот код работает отлично на 1 карту, но я должен сделать это для нескольких карт: forfiles /p "D:\CHILI_Publisher\Data\Environments\Adecco\Cache_Data\Assets" /s /d -10 /c "cmd /c echo @file" PAUSE

Это код для различных карт и различных типов файлов с групповыми символами (этой выдает ошибку: имя каталога является недопустимым: forfiles /p "D:\CHILI_Publisher\Data\Environments\*.*\Cache_Data\*.*" /s /d -10 /c "cmd /c echo @file" PAUSE

Tl; DR:. у меня есть ошибка, и хотел бы знать, как правильно использовать маску в пакетных файлах

+0

почему *. и не только * –

+0

Я отредактировал мой код - всего лишь * он по-прежнему дает ошибку. @amitdayama –

ответ

1

Вы можете обернуть FORFILES в FOR петли:

for /d %D in (c:\temp\a*;c:\temp\b*;c:\temp\c*) do forfiles /p %D /s /c "cmd /c echo @file" /d -10 

Если вам нужно найти все папки с названием CACHE_DATA под супер папкой можно перейти к супер папке (cd D:\CHILI_Publisher\Data\Environments) и запустить это:

for /f %F in ('dir /B /S /AD cache_data') do for /d %D in (%F) do forfiles /p %D /s /c "cmd /c echo @file" /d -10 

Если поместить скрипт в a BATCH файл не должен выходить % с %%.

+0

K спасибо, но вам нужно повторить каждый путь (поместите все пути в цикл). Или есть способ определить 1 путь? Основная проблема здесь в том, что вам нужно получить доступ ко всем файлам в пути и продолжить работу после этой (подстановочной) папки и перейти к следующей папке. Структура этих папок все одинакова. –