Почистване споделяне на папки на стари файлове файла - Администрация LAN

Ръководството на нашия ресторант пред мен имаше задача за периодично почистване на споделяне на файлове по-стари от три дни.

Ние се определи структурата на папките, които споделят. Да приемем, споделяне на файлове е на сървъра на път D: \ obmen. В конзола система, изпълни командата:

CHCP 866 реж / B г: \ obmen> г \ obmen-866.txt
CHCP 1251 реж / B г: \ obmen> г \ obmen-1251.txt

В основата на диск D: \, файловете: obmen-866.txt и obmen-1251.txt с структурата на папките. Поради факта, че конзолата работи в DOS кодировка (OEM-866), за да стартирате файла партида ще трябва obmen-866.txt файл. Вторият файл - obmen-1251.txt в кодиране 1251 полезно в бъдеще за по-комфортен папки за споделяне на обличане структура.

От obmen-866.txt файл скрипт ще прочетете, необходими за имена на папки. За правилната работа на скрипта всеки ред obmen-866.txt файл трябва да бъде подкрепена от сдвоени кавички.

За автоматизиране на тази операция, направете следното:

1. В бележник ++ отворен списък;
2. Извършва се търсене (Ctrl + F), раздел "Промяна";
3. Изберете режима на търсене - Advanced;
4. В полето Find, въведете: \ R \ Н, в полето Замяна с въведете: "\ R \ Н"
5. С кликването върху "Замяна на всички."
6. Сложете една единствена кавички в началото на списъка, както и премахване на самия край.

Така че, obmen-866.txt файл в правилния формат за сценария готов. Остава да пиша самия скрипт. Ако се вгледате в секция на сайта ми скриптове (НДНТ, ПМС). ще видите, че повечето от скриптовете, се основават на стандартната подготовка, което позволява да се работи в една линия с променливи. За пореден път, аз се възползвате от този метод.

Така че, на самия скрипт, ние го наричаме, например, clean_obmen.bat:

вещни Clean папка Obmen
@echo разстояние
REM CHCP 866> NUL промяна на кодирането на конзолата шрифт
CHCP 866> NUL
REM CD / D "%

dp0 "променя активната папка на пътя на стартирането прилеп файл
CD / D "%

dp0 "
избран listfile = obmen_866.txt
за / F "usebackq delims =" %% и в (% listfile%) поставят: процедура %% аз
изход
: процедура
вещни Цвят 0B променят цвета си конзола шрифта светло синьо
Цвят 0B
@echo ===========================================
@ Ехо%

1
@echo Изтриване на файлове в папка% на

1 "/ и / m *. * / D -3 / C" CMD / C ако @ isdir == FALSE дел / р / е @file "
изход / б

Бих искал да обърнете внимание на следното:

dp0 "променя активната папка на пътя на сценария започва. Без тази линия, скриптът не работи във Scheduler, тъй като той няма да намерите файла със скрипта.

Цикълът е организирана в този ред:

за / F "usebackq delims =" %% и в (% listfile%) поставят: процедура %% аз

ЗА команда е даден списък от команди, които се изпълняват с всеки елемент от комплекта.

Определете писмено вътре ПО (.)

Списък на отбора е написано вътре в DO (.)

Command Prompt изпълнява тези команди отново и отново, с текущия елемент е разположен в променливата определен след %%.

Тук ние използваме ЗА команда с ключ / F за прогресивно анализ obmen-866.txt файл.

String е последователност от знаци, ако тя не съдържа маски или знаци *.

UseBackQ (Използвайте обратно кавички) означава, че набор от двойни кавички.

delims = това означава, че всички променливи %% и линия (без разделяне на интервали или раздели ще се записва, като стандарт сепаратор се заменя със NULL (празно характер).

И накрая, в лечение на тялото линия:

forfiles.exe / р "D: \ Obmen \%

1 "/ и / m *. * / D -3 / C" CMD / C ако @ isdir == FALSE дел / р / е @file "

изтрива файлове по-стари от три дни.

Използвани forfiles екип. когато:

1 "- пътят към папката.

1 - линия на obmen-866.txt файл. А, да не се показва, които цитирахме "" Ние използваме модификатора

. / M * * - модел за търсене на всякакви файлове;

/ D -3 - търсене на файлове с промяната на датата за период от три дни;

/ C - командата;

"Cmd / C ако @ isdir == FALSE дел / р / е @file" - отбор;

ако @ isdir == FALSE - ако не в директорията, която е търсене само файлове;

дел / р / е @file - изтриване на файлове.

Вие може да се извърши в forfiles командния ред / за повече подробности за клавишите за командни?.

По този начин, партида файл е създаден. Остава да го добавите към програмата-и проверете работата.