Вы должны войти, чтобы создавать сообщения и темы.

Ежедневная сортировка файлов + в отдельную папку + их очистка по расписанию [Решено]

Когда-то давно, ещё в том году задумался написать для себя программу, которая чистит системную папку с загрузками так как мне нужно.

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


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



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

Сама суть программы: Спросить пользователя, правда ли он хочет добавить программу в планировщик задач. Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач. По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой. В последний день месяца удалить все папки из каталога "На удаление". Хотелось бы, чтобы кто-нибудь довёл это дело до ума, сам я не помню как всё тут работает. Да, есть системная сортировка файлов, но она мне не нравиться, лично для меня удобнее смотреть по папкам. Это просто была задача, которую я решал от скуки.

Приветствую 👋
Вам не кажется что слишком все за мудрено?
Зачем делать целенаправленно хлам в загрузках?
Что бы потом попытаться создать прогу, которая это все разгребет?
ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять

Лайкнули Ден и Kiya229
ДенKiya229

Денис, привет 🖐
Вообще, Kiya229 попросил программу, а не это.

Лайкнули Сергей, Удаленный пользователь и ещё 4
СергейУдаленный пользовательPhilipKiya229AltСергей
В любой непонятной ситуации переходи на beta  © Win 10 Tweaker

Привет!

Цитата: Денис от 08.08.2022, 22:14

Приветствую 👋

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

Цитата: Денис от 08.08.2022, 22:14

Что бы потом попытаться создать прогу, которая это все разгребет?

Я не храню файлы на рабочем столе, лишь ярлыки программ и нужных мне папок. Привык, что всё лежит в системной. Я просто не пользуюсь сортировкой.

Цитата: Денис от 08.08.2022, 22:14

ИМХО, проще все сохранять на рабочий стол, и закидывать куда надо, или удалять

В плане кода точно мудрёно, удивительно, что оно до сих пор работает хоть и появился баг с первой папкой.

Цитата: Денис от 08.08.2022, 22:14

Вам не кажется что слишком все за мудрено?

ТЗ:

Спросить пользователя, правда ли он хочет добавить программу в планировщик задач.

✓ 

Если пользователь соглашается: Создать папку "На удаление", в каталоге "Downloads", и добавить в планировщик задач.

✓ 

По достижению 23:59, создать папку с текущей датой, перенести все файлы из загрузок в папку "На удаление", в каталог с текущей датой.

✓ 

В последний день месяца удалить все папки из каталога "На удаление".

✓ 

Лайкнули Сергей, Mikhail и ещё 7
СергейMikhailДмитрийЯRУдаленный пользовательKiya229VladoAltСергей
В любой непонятной ситуации переходи на beta  © Win 10 Tweaker

Привет.
Даже и подумать не мог, ну точнее не то что б подумать не мог, просто не приходило в голову что можно написать программу которой можно оптимизировать процес сортировки файлов, скажем так.
Очень крутая прога и лично моей маме она будет очень даже полезной.
Спасибо автору за саму идею и спасибо XpucT за реализацию.
У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?

Лайкнули XpucT и Kiya229
XpucTKiya229

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

Цитата: Oleg Lyaskovsky от 09.08.2022, 11:23

У меня только один вопрос, а если комп не будет работать в 23:59, то программа будет при следующем запуске компьютера это все делать или как?

Лайкнул XpucT
XpucT

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

Ошибка