1 (3 года 3 месяца назад)

Тема: Помогите написать скрипт на удаление файлов

Дано:
файлообменник на винде.
Куча файлов везде и во всех папках, есть подпапки 2-3 и т.д уровней.

Задача:
Удалить все файлы и папки, исключения:
1) Папки первого уровня удалять не нужно
2) Есть две папки "First" и "Second" в каталоге 1ого уровня - Эти папки не трогаем
3) Папки второго уровня с названием "Scan" не удаляем, но очищаем содержимое


Ковырять безопасность не хочу. В идеале исключения задаются в стороннем .txt файле

Заранее спасибо slightly_smiling_face

Отредактировано Slayer (, 3 года 3 месяца назад)

***

2 (3 года 3 месяца назад)

Re: Помогите написать скрипт на удаление файлов

c1.cmd

@echo off
REM Скрипт очистки каталогов
REM Установим параметры запуска
SET PathToDel=E:\tmp\12\1
SET Protocol=E:\tmp\12\12.log

echo =========================================================================================== >> %Protocol%
echo   %Date% %Time% Удаление файлов и папок из каталога %PathToDel% >> %Protocol%
forfiles /p %PathToDel% /m * /c "cmd /c E:\tmp\12\d1.cmd @file @isdir @ext @relpath %PathToDel% @path"
echo   %Date% %Time% конец обработки >> %Protocol%
echo =========================================================================================== >> %Protocol%
@echo off
if Z%2Z==ZTRUEZ goto DelDir1
if Z%2Z==ZFALSEZ goto DelFile1
echo неправильный параметр №2, выход.
goto ex15

:DelDir1
REM Удаление каталогов. Определённые каталоги оставим
if Z%1Z==Z"First"Z goto ex16
if Z%1Z==Z"Second"Z goto ex17
:: очистить папку 
echo Очистка папки %6 >> %Protocol%
forfiles /p %6 /m * /c "cmd /c E:\tmp\12\d2.cmd @file @isdir @ext @relpath @path"
goto ex15

:DelFile1
REM Удаление файлов.

echo del /Q %6 >> %Protocol%
del /Q %6

goto ex15

:ex16
REM Очистка спец. каталогов
echo Каталог %1\First оставим >> %Protocol%
goto ex15
:ex17
echo Каталог %1\Second оставим >> %Protocol%

:: Выход
:ex15
@echo off
if Z%2Z==ZTRUEZ goto DelDir2
if Z%2Z==ZFALSEZ goto DelFile2
echo неправильный параметр №2, выход.
goto ex25

:DelDir2
REM Удаление каталогов
if NOT Z%1Z==Z"Scan"Z goto sk2
:: очистить папку Scan
echo Очистка папки Scan (%5\Scan) >> %Protocol%
forfiles /p %5%\Scan /m * /s /c "del /F /Q @path"
goto ex25
:sk2

echo RD /S /Q \%5 >> %Protocol%
RD /S /Q %5

goto ex25

:DelFile2
REM Удаление файлов.

echo del /Q %5 >> %Protocol%
del /Q %5

:ex25

d1.cmd


d1.cmd



d2.cmd



тут с кодами на форуме хрень какая-то творится.
всего три файла:
c1.cmd
d1.cmd
d2.cmd
текст их выше по порядку.


Ещё:
это я по-быстрому накидал из моего скрипта более сложного.
"E:\tmp\12" - это путь, где я эксперименты проводил - в тексте он встречается, надо заменить на ваш.

Отредактировано alex1 (, 3 года 3 месяца назад)

96О-9сорак1-48-осемнацать

3 +1 (3 года 3 месяца назад)

Re: Помогите написать скрипт на удаление файлов

удалить ручками будет быстрее чем тягомотина тут  laughing  laughing

www.neuron.ru

dzen.ru/neuron

В эпоху повсеместной победы дилетантизма всякое проявление высокого профессионализма выглядит архаичным и неправдоподобным

Учитывая глупость большинства людей, широко распространенная точка зрения будет скорее глупа, чем разумна.

4 (3 года 3 месяца назад)

Re: Помогите написать скрипт на удаление файлов

Stranger пишет:

удалить ручками будет быстрее чем тягомотина тут  laughing  laughing

нам за go to пальцы отрубали , а оказывается - так можно было ...  smile

Программирование микросхем памяти в корпусах DIP48 TSOP48\56 SSOP56 BGA48\63\64 WSON8 TQFP32\44 PLCC44 PSOP44

https://clubbingtv.com/top-40-live-streaming-djs/

*
-можно ли убить человека байтом?
-да, нужно бить восемью битами.

5 (3 года 3 месяца назад)

Re: Помогите написать скрипт на удаление файлов

Stranger пишет:

удалить ручками будет быстрее чем тягомотина тут  laughing  laughing

Тягомотину один раз сделать и на долго забыть. А ручками каждый день тыркать надо

alex1 пишет:

c1.cmd


Спасибо, завтра попробую

Отредактировано (, 3 года 3 месяца назад)

***

6 (3 года 3 месяца назад)

Re: Помогите написать скрипт на удаление файлов

d2.cmd

@echo off
if Z%2Z==ZTRUEZ goto DelDir2
if Z%2Z==ZFALSEZ goto DelFile2
echo неправильный параметр №2, выход.
goto ex25

:DelDir2
REM Удаление каталогов
if NOT Z%1Z==Z"Scan"Z goto sk2
:: очистить папку Scan
echo Очистка папки Scan (%5\Scan) >> %Protocol%
forfiles /p %5\Scan /m * /s /c "cmd /c E:\tmp\12\d2.cmd @file @isdir @ext @relpath @path"
goto ex25
:sk2

echo RD /S /Q \%5 >> %Protocol%
RD /S /Q %5

goto ex25

:DelFile2
REM Удаление файлов.

echo del /Q %5 >> %Protocol%
del /Q %5

:ex25
Slayer пишет:

Спасибо, завтра попробую

Сначала доработайте скрипты под свои каталоги и потренируйтесь на ненужных файлах и каталогах.
А то вылезти могут всякие косяки. Я тестировал на Windows 7.

Отредактировано alex1 (, 3 года 3 месяца назад)

96О-9сорак1-48-осемнацать