Папка-шлюз

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Аватара пользователя
mrmerak
Сообщения: 441
Зарегистрирован: Пн авг 20, 2007 03:48

Папка-шлюз

Сообщение mrmerak »

Всем приветы.

Есть папка "А".
В этой папке есть другие папки "АВ".

Нужно чтобы в 00:00 в папке "А" удалялись все файлы (но не папки), а в папках "АВ" удалялось все.

Подозреваю, что тут нужны батник и планировщик... подскажите как быть. Заранее спс.
TC 9.51 | Win10 1903
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

По быстрому на AutoHotkey получился такой скрипт.
Dir - исходная папка, Period - периодичность проверки (1000 = 1 секунде).

Код: Выделить всё

#NoEnv
;#NoTrayIcon
#SingleInstance ignore
#Persistent

Dir := "d:\A"
Period := "1000"

SetTimer, RemFiles, % Period
return

RemFiles:
  Loop, Files, %Dir%\*.*, FDR
  {
    if InStr(FileExist(A_LoopFileLongPath), "D")
    {
      if ( A_LoopFileDir != Dir )
        FileRemoveDir, %A_LoopFileLongPath%, 1
    }
    else
    {
      FileSetAttrib, -R, %A_LoopFileLongPath%
      FileDelete, %A_LoopFileLongPath%
    }
  }
return
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
mrmerak
Сообщения: 441
Зарегистрирован: Пн авг 20, 2007 03:48

Сообщение mrmerak »

Изображение


mrmerak писал(а):и планировщик...
это победил уже:
Schtasks.exe /Create /RL Highest /TN CleanUP /SC Daily /ST 23:59 /TR "D:\CleanUP.bat"
TC 9.51 | Win10 1903
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

mrmerak
Это не AutoIT, а AutoHotkey скрипт.
Для запуска скрипта достаточно одного файла из архива. Я предпочитаю 32-хбитную Unicode-версию AutoHotkeyU32.exe как наиболее универсальную. Можно откомпилировать в отдельный ехе-шник (компилятор тоже в архиве).
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
mrmerak
Сообщения: 441
Зарегистрирован: Пн авг 20, 2007 03:48

Сообщение mrmerak »

LonerD
опа! да, недоглядел
спс

вообщем уже и решение на автоите подсказали:

Код: Выделить всё

#include <File.au3>
FileDelete("D:\folder A\*.*") ;удаляем все файлы из folder A
$folders_list=_FileListToArray("D:\folder A", "*", 2) ;получаем список папок, вложенных в folder A
For $i=1 To UBound($folders_list)-1
    DirRemove("D:\folder A\" & $folders_list[$i], 1) ;удаляем папки и все внутри них
    DirCreate("D:\folder A\" & $folders_list[$i]) ;создаем пустые папки снова
Next
TC 9.51 | Win10 1903
Ответить