Почистване споделяне на папки на стари файлове файла - Администрация 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 командния ред / за повече подробности за клавишите за командни?.
По този начин, партида файл е създаден. Остава да го добавите към програмата-и проверете работата.