VBScriptillä voi helposti luoda ilman mitään koodaustyökaluja itselleen varmuuskopiorutiinin.
Alla esimerkkejä erilaisista varmuuskopiointitavoista.
Kun VBScripti on kirjoitettu esimerkiksi Notepadilla (Muistio), tallenna se vbs päätteiseksi tiedostoksi.
Tiedoston ajaminen onnistuu joko resurssinhallinnasta tuplaklikkaamalla kyseistä tiedostoa tai komentokehotteen kautta kirjoittamalla "cscript tiedosto.vbs", jossa tiedosto on sen niminen, kuin olet sen tallentanut.
HUOM! Kopionti korvaa aikaisemmin kopioidut tiedostot ilman että tietokone ilmoittaisi siitä yhtään mitään!
Scriptit toimii suoraan käyttöjärjestelmissä:
Windows NT 4.0, 2000, XP ja 2003 servereissä.
Windows 98:ssa sen saa toimimaan, kun asentaa ensin Microsoftin Windows Scripting Hostin.
Esimerkki 1
Alla oleva koodi kopioi vain tietyssä kansiossa olevat tiedostot, joiden pääte on .txt. Korvaa "hakemisto" kohdat sellaisilla hakemistonimillä, joita sinulta jo löytyy. Jos niitä ei ole, antaa scripti virheilmoituksen.
Const OverwriteExisting = True Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "C:\hakemisto\*.txt" , "D:\hakemisto\" , OverwriteExisting
Esimerkki 2
Alla oleva koodi kopioi koko kansion alikansioineen määrittelemääsi paikkaan.
Korvaa tässäkin esimerkissä "hakemisto" nimet sellaisiksi, jotka koneeltasi jo löytyy.
Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFolder "C:\hakemisto" , "D:\hakemisto" , OverWriteFiles
Esimerkki 3
Ongelmallisinta tässä kopioinnissa on se, että esimerkit 1 ja 2, eivät näytä kopioinnin tilaa missään vaiheessa, joten mm. messageboxeilla voidaan tehdä ilmoitukset kun varmuuskopiointi alkaa ja kun se on päättynyt. Näin käyttäjä tietää että Scripti on käynnistetty ja milloin se on suorittanut itse kopioinnin. Alla esimerkki 2:teen on lisätty nämä ilmoitukset.
Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") msgbox "Varmuuskopiointi aloitettu tausta-ajona!" objFSO.CopyFolder "C:\hakemisto" , "D:\hakemisto" , OverWriteFiles msgbox "Varmuuskopiointi valmis. Varmuuskopio tallennettu kansioon D:\hakemisto."
Saman voisi kait (viesti-ikkunaa lukuunottamatta) toteuttaa BAT-tiedostolla, jolloin se toimisi kaikissa Windowseissa ainakin versiosta 3.x alkaen.
@echo off echo "Varmuuskopiointi aloitettu." copy /y c:\hakemisto\*.* d:\hakemisto\ echo "Varmuuskopiointi valmis."
Ehkä 3 esimerkissä hakemiston sijainnin olisi voinut laittaa muuntajaan, josta, sitten luetaan msgboxsissa.
Yllättäjän samannäköstä koodia VB verrattuna.
samaa mieltä antin kanssa, batissa on munkin varmuuskopioinnit. ja xcopy rulettaa...
Lähinnä käytettävyydessä ero tulee kun tuota lähtee soveltamaan enemmän omiin tarkoituksiinsa.
Esimerkiksi tuohon voisi tehdä lisärivejä, jotka pitäisi kirjaa varmuuskopioinneista, joka tietääkseni ei bateilla kovin helposti luonnistu.
Kysehän on kuitenkin vain koodivinkistä, ei niinkään valmiiksi tehtyä täydellistä toimintoa.
Koodivinkeistä opitaan ja niitä käytetään omiin tarkoituksiin soveltaen.
Soveltamiseen FSO:lla on huomattavasti laajempi mahdollisuus kuin bateilla.
PS. tietääkseni tuo FSO:lla tiedostojen kopiointi on muutoinkin nopeampi toimenpide kuin normaalilla copy tai Xcopya käytettäessä. ainankin itse huomasin kokeillessani kopioida suurempaa tiedostomäärää FSO:n olevan jonkin verran nopeampi.
Echon jälkeen ei hipsuja, Antti!
varmuuskopiointi on batil yksinkertasuudessaan
copy c:\hakemisto\*.* d:\hakemisto
batista:
1. echon jälkeen ei tarvi "-merkkiä
2. dossi riittää (myös komentokehote)
Jos haluaa pitää kirjaa varmuuskopioiduista tiedostoista:
@echo off echo Varmuuskopijoidaan... copy /y c:\hakemisto\*.* d:\hakemisto\ echo varmuuskopiointi /y c:\hakemisto\*.* d:\hakemisto suoritettu. >> C:\varmuuskopiokirjanpito.txt echo Kopijoitu.
copy /y c:\hakemisto\*.* d:\hakemisto\
Mitä tuossa lauseessa tuo /y tarkoittaa?
Aihe on jo aika vanha, joten et voi enää vastata siihen.