Страница 1 из 1
Папка-шлюз
Добавлено: Чт окт 18, 2018 16:15
mrmerak
Всем приветы.
Есть папка "А".
В этой папке есть другие папки "АВ".
Нужно чтобы в 00:00 в папке "А" удалялись все файлы (но не папки), а в папках "АВ" удалялось все.
Подозреваю, что тут нужны батник и планировщик... подскажите как быть. Заранее спс.
Добавлено: Чт окт 18, 2018 17:26
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
Добавлено: Пт окт 19, 2018 08:46
mrmerak
mrmerak писал(а):и планировщик...
это победил уже:
Schtasks.exe /Create /RL Highest /TN CleanUP /SC Daily /ST 23:59 /TR "D:\CleanUP.bat"
Добавлено: Пт окт 19, 2018 13:12
LonerD
mrmerak
Это не AutoIT, а
AutoHotkey скрипт.
Для запуска скрипта достаточно одного файла из
архива. Я предпочитаю 32-хбитную Unicode-версию AutoHotkeyU32.exe как наиболее универсальную. Можно откомпилировать в отдельный ехе-шник (компилятор тоже в архиве).
Добавлено: Пт окт 19, 2018 13:14
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