Ежедневная сортировка файлов из системной папки загрузок в отдельную папку и их очистка по расписанию.
Цитата: Удаленный пользователь от 08.08.2022, 22:01Когда-то давно, ещё в том году задумался написать для себя программу, которая чистит системную папку с загрузками так как мне нужно.
[spoiler title="CleanDay.bat"]
@echo off chcp 65001 >nul set "n=&echo." set sFolderName=%date% (%time:~0,-3%) set usname=%username% md C:\Users\%usname%\Downloads\"На удаление"\"%sFolderName::=-%" Echo Была создана папка %sFolderName::=-% в каталаге "На удаление" robocopy "C:\Users\%username%\Downloads" "C:\Users\%username%\Downloads\На удаление\%sFolderName::=-%" /move /e /XD "На удаление" cls&Echo Все файлы были перемещены в C:\Users\%usname%\Downloads\На удаление\%sFolderName::=-% %n%Через месяц, вам придёт уведомление об удалении! timeout /t 5 & exit[/spoiler]
[spoiler title="CleanMon.bat"]
@echo off chcp 65001 >nul :ForseRequest set ForseImput= Echo Предупреждение об удалении файлов set /p ForseImput="Y - Удалить, N - Не удаляь. Y/N:" if /i "%ForseImput%"==" " (cls& Echo Ошибка: Введен пробел& goto ForseRequest) if /i "%ForseImput%"=="" (cls& Echo Ошибка: Ничего не введено & goto ForseRequest) if /i %ForseImput%==y (cls& set Forse=1&& goto Runing) if /i %ForseImput%==n (cls& set Forse=0&& goto Closing) cls& echo Ошибка: Неверный ввод& goto ForseRequest echo ============================== :Runing set usname=%username% set targetdir="C:\Users\%usname%\Downloads\На удаление\" del /q %targetdir%\* for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^" exit :Closing exit pause[/spoiler]
[spoiler title="Cleaner.bat"]
@echo off chcp 65001 >nul for /F "delims=" %%i in (Config.cfg) do set VAR1=%%i if "%VAR1%"=="'ClanerMon=0 CleanerDay=0'" (set Forse=0) for /F "delims=" %%i in (Config.cfg) do set VAR1=%%i if "%VAR1%"=="'ClanerMon=1 CleanerDay=1'" (set Forse=1) set "n=&echo." set usname=%username% :ForseRequest set ForseImput= Echo Данная программа предназначена для ежемесячной очистки папки с загрузками,%n%хотите-ли вы добавить задачу в планировщик задач?%n%Добавить задачу?%n%Статус программы:%Forse% set /p ForseImput="Y - Хочу, N - Не хочу. Y/N:" if /i "%ForseImput%"==" " (cls& Echo Ошибка: Введен пробел& goto ForseRequest) if /i "%ForseImput%"=="" (cls& Echo Ошибка: Ничего не введено & goto ForseRequest) if /i %ForseImput%==y (cls& set Forse=1&& goto Runing) if /i %ForseImput%==n (cls& set Forse=0&& goto Closing) cls& echo Ошибка: Неверный ввод& goto ForseRequest echo ============================== :Runing Copy CleanDay.bat C:\Windows\CleanerDay.bat Copy CleanMon.bat C:\Windows\CleanerMon.bat cls Echo Программа была запущена Echo 'ClanerMon=1 CleanerDay=1'> Config.cfg Echo Статус программы: %Forse% md C:\Users\%usname%\Downloads\"На удаление" Echo Была создана папка C:\Users\%usname%\Downloads\На удаление SCHTASKS /create /sc MONTHLY /st 08:00 /tn CleanerMon /tr "C:\Windows\CleanerMon.bat start /min" cls Echo Была создана задача, запускать очистку каждый месяц SCHTASKS /create /sc DAILY /st 20:00 /tn CleanerDay /tr "C:\Windows\CleanerDay.bat start /min" cls Echo Была создана задача, запускать ежедневную пред-очистку pause exit :Closing Echo Вы действительно хотите удалить задачу по ежемесячной очитске? pause cls SCHTASKS /delete /tn CleanerMon cls Echo Задача по ежемесячной очистке была удалена Echo Вы действительно хотите удалить задачу по ежедневной очистке? pause SCHTASKS /delete /tn CleanerDay cls del C:\Windows\CleanerDay.bat del C:\Windows\CleanerMon.bat cls Echo Задача по ежедневной очистке была удалена Echo Программа была отключена Echo 'ClanerMon=0 CleanerDay=0'> Config.cfg Echo Статус программы: %Forse% pause exit[/spoiler]
Сама суть программы: Спросить пользователя, правда ли он хочет добавить программу в планировщик задач. Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач. По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой. В последний день месяца удалить все папки из каталога "На удаление". Хотелось бы, чтобы кто-нибудь довёл это дело до ума, сам я не помню как всё тут работает. Да, есть системная сортировка файлов, но она мне не нравиться, лично для меня удобнее смотреть по папкам. Это просто была задача, которую я решал от скуки.
Когда-то давно, ещё в том году задумался написать для себя программу, которая чистит системную папку с загрузками так как мне нужно.
@echo off chcp 65001 >nul set "n=&echo." set sFolderName=%date% (%time:~0,-3%) set usname=%username% md C:\Users\%usname%\Downloads\"На удаление"\"%sFolderName::=-%" Echo Была создана папка %sFolderName::=-% в каталаге "На удаление" robocopy "C:\Users\%username%\Downloads" "C:\Users\%username%\Downloads\На удаление\%sFolderName::=-%" /move /e /XD "На удаление" cls&Echo Все файлы были перемещены в C:\Users\%usname%\Downloads\На удаление\%sFolderName::=-% %n%Через месяц, вам придёт уведомление об удалении! timeout /t 5 & exit
@echo off
chcp 65001 >nul
:ForseRequest
set ForseImput=
Echo Предупреждение об удалении файлов
set /p ForseImput="Y - Удалить, N - Не удаляь. Y/N:"
if /i "%ForseImput%"==" " (cls& Echo Ошибка: Введен пробел& goto ForseRequest)
if /i "%ForseImput%"=="" (cls& Echo Ошибка: Ничего не введено & goto ForseRequest)
if /i %ForseImput%==y (cls& set Forse=1&& goto Runing)
if /i %ForseImput%==n (cls& set Forse=0&& goto Closing)
cls& echo Ошибка: Неверный ввод& goto ForseRequest
echo ==============================
:Runing
set usname=%username%
set targetdir="C:\Users\%usname%\Downloads\На удаление\"
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"
exit
:Closing
exit
pause
@echo off
chcp 65001 >nul
for /F "delims=" %%i in (Config.cfg) do set VAR1=%%i
if "%VAR1%"=="'ClanerMon=0 CleanerDay=0'" (set Forse=0)
for /F "delims=" %%i in (Config.cfg) do set VAR1=%%i
if "%VAR1%"=="'ClanerMon=1 CleanerDay=1'" (set Forse=1)
set "n=&echo."
set usname=%username%
:ForseRequest
set ForseImput=
Echo Данная программа предназначена для ежемесячной очистки папки с загрузками,%n%хотите-ли вы добавить задачу в планировщик задач?%n%Добавить задачу?%n%Статус программы:%Forse%
set /p ForseImput="Y - Хочу, N - Не хочу. Y/N:"
if /i "%ForseImput%"==" " (cls& Echo Ошибка: Введен пробел& goto ForseRequest)
if /i "%ForseImput%"=="" (cls& Echo Ошибка: Ничего не введено & goto ForseRequest)
if /i %ForseImput%==y (cls& set Forse=1&& goto Runing)
if /i %ForseImput%==n (cls& set Forse=0&& goto Closing)
cls& echo Ошибка: Неверный ввод& goto ForseRequest
echo ==============================
:Runing
Copy CleanDay.bat C:\Windows\CleanerDay.bat
Copy CleanMon.bat C:\Windows\CleanerMon.bat
cls
Echo Программа была запущена
Echo 'ClanerMon=1 CleanerDay=1'> Config.cfg
Echo Статус программы: %Forse%
md C:\Users\%usname%\Downloads\"На удаление"
Echo Была создана папка C:\Users\%usname%\Downloads\На удаление
SCHTASKS /create /sc MONTHLY /st 08:00 /tn CleanerMon /tr "C:\Windows\CleanerMon.bat start /min"
cls
Echo Была создана задача, запускать очистку каждый месяц
SCHTASKS /create /sc DAILY /st 20:00 /tn CleanerDay /tr "C:\Windows\CleanerDay.bat start /min"
cls
Echo Была создана задача, запускать ежедневную пред-очистку
pause
exit
:Closing
Echo Вы действительно хотите удалить задачу по ежемесячной очитске?
pause
cls
SCHTASKS /delete /tn CleanerMon
cls
Echo Задача по ежемесячной очистке была удалена
Echo Вы действительно хотите удалить задачу по ежедневной очистке?
pause
SCHTASKS /delete /tn CleanerDay
cls
del C:\Windows\CleanerDay.bat
del C:\Windows\CleanerMon.bat
cls
Echo Задача по ежедневной очистке была удалена
Echo Программа была отключена
Echo 'ClanerMon=0 CleanerDay=0'> Config.cfg
Echo Статус программы: %Forse%
pause
exit
Сама суть программы: Спросить пользователя, правда ли он хочет добавить программу в планировщик задач. Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач. По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой. В последний день месяца удалить все папки из каталога "На удаление". Хотелось бы, чтобы кто-нибудь довёл это дело до ума, сам я не помню как всё тут работает. Да, есть системная сортировка файлов, но она мне не нравиться, лично для меня удобнее смотреть по папкам. Это просто была задача, которую я решал от скуки.
Цитата: Удаленный пользователь от 08.08.2022, 22:14Приветствую 👋
Вам не кажется что слишком все за мудрено?
Зачем делать целенаправленно хлам в загрузках?
Что бы потом попытаться создать прогу, которая это все разгребет?
ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять
Приветствую 👋
Вам не кажется что слишком все за мудрено?
Зачем делать целенаправленно хлам в загрузках?
Что бы потом попытаться создать прогу, которая это все разгребет?
ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять
Цитата: Удаленный пользователь от 08.08.2022, 22:21Привет!
Цитата: Денис от 08.08.2022, 22:14Приветствую
Я не знаю что именно тогда меня сподвигло написать это, просто было интересно решить эту задачу, я хотел сортировать файлы по их расширению в папки с датами.
Цитата: Денис от 08.08.2022, 22:14Что бы потом попытаться создать прогу, которая это все разгребет?
Я не храню файлы на рабочем столе, лишь ярлыки программ и нужных мне папок. Привык, что всё лежит в системной. Я просто не пользуюсь сортировкой.
Цитата: Денис от 08.08.2022, 22:14ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять
В плане кода точно мудрёно, удивительно, что оно до сих пор работает хоть и появился баг с первой папкой.
Цитата: Денис от 08.08.2022, 22:14Вам не кажется что слишком все за мудрено?
Привет!
Цитата: Денис от 08.08.2022, 22:14Приветствую
Я не знаю что именно тогда меня сподвигло написать это, просто было интересно решить эту задачу, я хотел сортировать файлы по их расширению в папки с датами.
Цитата: Денис от 08.08.2022, 22:14Что бы потом попытаться создать прогу, которая это все разгребет?
Я не храню файлы на рабочем столе, лишь ярлыки программ и нужных мне папок. Привык, что всё лежит в системной. Я просто не пользуюсь сортировкой.
Цитата: Денис от 08.08.2022, 22:14ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять
В плане кода точно мудрёно, удивительно, что оно до сих пор работает хоть и появился баг с первой папкой.
Цитата: Денис от 08.08.2022, 22:14Вам не кажется что слишком все за мудрено?
Цитата: admin от 09.08.2022, 00:26[spoiler title="ТЗ:"]
Спросить пользователя, правда ли он хочет добавить программу в планировщик задач.
✓
Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач.
✓
По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой.
✓
В последний день месяца удалить все папки из каталога "На удаление".
✓
[/spoiler][spoiler title="Результат:"]Replace My Downloads
Исходный код[/spoiler]
Спросить пользователя, правда ли он хочет добавить программу в планировщик задач.
✓
Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач.
✓
По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой.
✓
В последний день месяца удалить все папки из каталога "На удаление".
✓
Цитата: Удаленный пользователь от 09.08.2022, 11:23Привет.
Даже и подумать не мог, ну точнее не то что б подумать не мог, просто не приходило в голову что можно написать программу которой можно оптимизировать процес сортировки файлов, скажем так.
Очень крутая прога и лично моей маме она будет очень даже полезной.
Спасибо автору за саму идею и спасибо XpucT за реализацию.
У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?
Привет.
Даже и подумать не мог, ну точнее не то что б подумать не мог, просто не приходило в голову что можно написать программу которой можно оптимизировать процес сортировки файлов, скажем так.
Очень крутая прога и лично моей маме она будет очень даже полезной.
Спасибо автору за саму идею и спасибо XpucT за реализацию.
У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?
Цитата: Удаленный пользователь от 09.08.2022, 11:50Думаю если проставить в ручную в параметрах [simple_tooltip content='
']"Немедленно запускать задачу, если пропущен плановый запуск"[/simple_tooltip], то будет работать, могу ошибаться.
Цитата: Oleg Lyaskovsky от 09.08.2022, 11:23У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?
Думаю если проставить в ручную в параметрах [simple_tooltip content='
']"Немедленно запускать задачу, если пропущен плановый запуск"[/simple_tooltip], то будет работать, могу ошибаться.
Цитата: Oleg Lyaskovsky от 09.08.2022, 11:23У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?