Ahoj,
bude to trochu složitější
Nejdřív je třeba v proměnné path nastavit cestu k adresáři WinRar (pokud není). Pravoklik na počítač, vlastnosti.
- Path Winrar
Vlastní skript:
Kód: Vybrat vše
'***********************************************************
'* Script kopíruje všechny soubory a složky MineCraft *
'* Vytváří si soubory na síťovém disku *
'***********************************************************
'* Vytvořeno pro PC-HELP *
'* Etienn@Script *
'***********************************************************
Option Explicit
Dim Mesic, Den, Hodina, NameFile, rarName, WshShell, fso, txtStream, cesta
Dim prikaz, ReturnCode, ForAppend, cil, zdroj
cil = "F:\MCzal\"
zdroj = "C:\Users\CloudGirl\Desktop\Minecraft server\"
Const LogFile = "C:\ScriptLog\zallog.txt"
' vytvoreni nazvu souboru
Mesic = Month(Now())
Den = Day(Now())
Hodina = Hour(Now())
If Hodina < 10 Then Hodina = "0" & Hodina
If Den < 10 Then Den = "0" & Den
If Mesic < 10 Then Mesic = "0" & Mesic
Namefile = "MineCraft" & "_" & Year(Now()) & Mesic & Den & Hodina & ".rar"
rarName = "MineCraft" & "_" & Year(Now()) & Mesic & Den & Hodina
'WScript.Echo Namefile
'WScript.Echo rarName
' Nastaveni objektu a adresare s logy
ForAppend = 8
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FilesystemObject")
If (Not fso.FolderExists("C:\ScriptLog")) Then fso.CreateFolder("C:\ScriptLog")
Set txtStream = fso.OpenTextFile(LogFile, ForAppend, True)
' adresar existuje? If not - create
If (Not fso.FolderExists(cil)) Then fso.CreateFolder(cil)
' existuje jiz zaloha?
cesta = cil & Namefile
If fso.FileExists(cesta) Then
txtStream.WriteLine Date & vbTab &Time & vbTab & "Soubor zálohy již existuje"
txtStream.Close
Set WshShell = Nothing
Set fso = Nothing
Set txtStream = Nothing
WScript.Quit
End If
' provedeni zalohy
zdroj = zdroj & "*.*"
rarName = cil & rarName
WScript.Sleep 500
'prikaz = "winrar a " & rarName & " -m5 -tsca -ac -ilog " & zdroj
prikaz = "winrar a -r -m5 -tsca -ac -ilog " & rarName & " " & zdroj
ReturnCode = WshShell.Run(prikaz, 1, True)
WScript.Sleep 2000
'Test zda zaloha probehla v poradku
If ReturnCode = 0 Then
txtStream.WriteLine Date & vbTab & Time & vbTab & "Záloha proběhla v pořádku"
txtStream.Close
Else
txtStream.WriteLine Date & vbTab & Time & vbTab & "Záloha se nepodařila" & vbTab & "Kód: " & ReturnCode
txtStream.Close
End If
Set WshShell = Nothing
Set fso = Nothing
Set txtStream = Nothing
Zkopíruj text v code, vlož do notepadu (nepoužívat word) a ulož s příponou .vbs.
V naplánovaných úlohách si pak nastav, kdy chceš skript spouštět.
význam proměnných:
zdroj - absolutní cesta k adresáři, který má být zálohován
cíl - absolutní cesta k adresáři, kam jsou vytvářeny zálohy. Síťový disk musí být přístupný. Pokud adresář neexistuje, skript si ho vytvoří.
LogFile - absolutní cesta k souboru logů - skript svou činnost loguje a výsledek zapisuje, včetně případného chybového kódu winraru. Pokud adresář a soubor neexistuje, vytvoří si je. POZOR - pokud budeš chtít logy jinde, než je nastaveno, je třeba změnit složku i v tomto řádku:
If (Not fso.FolderExists("C:\ScriptLog")) Then fso.CreateFolder("C:\ScriptLog") Skript zabalí celou adresářovou strukturu tak jak je, včetně podadresářů. Vytváří název zálohy ve formátu MineCraft_RRRRMMDDHH.rar.
Skript si kontroluje, zda záloha již neexistuje, pokud ano, zapíše do logu.
Skript lze samozřejmě spustit ručně (poklepáním).