Что нового

[Файловая система] Добавляем папку в архив

Diesel

Новичок
Сообщения
35
Репутация
0
Доброго времени суток!

Версия AutoIt: 3.3.8.0

Описание: Необходим скрипт (без GUI).
Каждые 12 часов запускать bat`ный скрипт через сам autoit или bat`ником, который будет вшит в exe файл
Код:
@echo off
chdir D:\Save\
D:\Rar.exe a -r -ag_DD.MM.YYYY_HH-MM D:\BackUp\ > nul
Что делает код: Папку "D:\Save\" добавляет в архив с именем DD.MM.YYYY_HH-MM и сохраняет архив в D:\BackUp\DD.MM.YYYY_HH-MM.rar

Примечания: Программа должна постоянно работать.

Автозапуск
Код:
If Not RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test") Then
 RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", "D:\путь")
EndIf


Как вшить rar.exe? :smile: Удобнее когда программа одним файлом
А если возможно, как запускать вшитые файлы?

Скрипт типо этого...
Код:
While 1
     If Not RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test") Then
      RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", "D:\путь")
     EndIf
     ;запуск скрипта на копирование
     Sleep(43200000)
WEnd
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Попробуйте. Не забудьте прописать свои пути, а затем скомпилировать.
Код:
$Save = "D:\UKTVED\" ;путь к папке, которую архивируем (указать свою)
$BackUp = "D:\Elit\" ;путь - куда архивируем (указать свою)

While 1
	If Not RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test") Then
		RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", @ScriptDir&"\"&@ScriptName)
		;скомпилированный скрипт добавит в автозагрузку тот путь, откуда был запущен
	EndIf
  
	If FileExists($Save) Then 
		FileInstall("D:\Rar.exe", @ScriptDir&"\");файл Rar.exe при компиляции должен находиться по указанному пути
		;т.е. на диске D в данном случае
		Run(@ScriptDir&'\Rar.exe a -r -ag_DD.MM.YYYY_HH-MM '&$BackUp&' '&$Save)
	Else
		MsgBox(16, "Ошибка", "Директория "&$Save&" не найдена")
		Exit
	EndIf	
	Sleep(10000)
WEnd



Добавлено:
Сообщение автоматически объединено:

Ошибочка вкралась :-[
Этот кусок:
Код:
If Not RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test") Then
        RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", @ScriptDir&"\"&@ScriptName)
        ;скомпилированный скрипт добавит в автозагрузку тот путь, откуда был запущен
    EndIf

Надо заменить на этот:
Код:
$var1 = RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test")
	$var2 = @ScriptFullPath
	If $var1 <> $var2 Then
		RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", $var2)
	EndIf
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
А обязательно создавать архив в RAR? Может ZIP подойдет, тогда и Rar.exe прикладываться не надо будет.
 
Автор
D

Diesel

Новичок
Сообщения
35
Репутация
0
Нет, не обязательно.
Продемонстрируйте пожалуйста

Главное чтобы название архива было: ДД.ММ.ГГГГ-ЧЧ;ММ (17.01.2012-15;33.zip)
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Вот пример для zip (не тестил)

Код:
#include <File.au3>
#include <Zip_UDF.au3>

; переменные
$date = @MDAY & @MON &@YEAR & @HOUR & @MIN
$OutFolder = 'D:\BackUp\'
$LogFile = $ScriptDir & "\Log\" &$date & ".log"
$SrcFolder = "D:\Save\"
$ZipFile = $OutFolder & "\" &$date & ".zip"

If Not RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test") Then
        RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Test", "REG_SZ", @ScriptDir&"\"&@ScriptName)
        ;скомпилированный скрипт добавит в автозагрузку тот путь, откуда был запущен
    EndIf

; старт логирования
_FileWriteLog($LogFile, "Старт архивации.............")

; Добавить папку
$RetCode = _ZipAdd($ZipFile, $SrcFolder)
_FileWriteLog($LogFile, "Return code from _ZipAdd($ZipFile, $SrcFolder) = " & $RetCode & " and @Error = " & @error)
Exit
 
Верх