Saturday, October 9, 2010

Mastering Batch File

        Akhir akhir ini beberapa pc dikantor banyak yang rusak dan minta di reinstall, terkadang
dalam 1 hari ada 2 - 3 pc yang mengalami hal itu, kebanyakan karena spyware, komputer
jadi lambat dan sering hang…ditambah lagi aktifitas user yang suka buka situs situs porn
yang penuh dengan software2 jahat, akhirnya aku harus reinstall, untuk reinstall pun ngga
segampang yang kita lihat. kita terlebih dahulu harus membackup dokumenya, setingan
registrynya, addressbooknya, email outlooknya, favoritenya, dsb dsb…..
Akhirnya kita harus mengkopi 1 persatu untuk masing masing proses, ya khan, ada
sebuah solusi yang baik dalam menyelesaikan hal ini, khususnya dalam hal backup
membackup sistem komputer sebelum di reinstall ulang, backup ini bisa di simpan
di server dalam jaringan atau di drive lain dalam komputer user, tampa harus
menggunakan software khusus yang memberatkan user, hanya dengan
menggunakan sebuah program seukuran 2kb bisa melakukan itu semua, caranya
yaitu dengan membuat BATCH FILE. Overview dalam struktur sistem operasi windows
xp, setiap user di handle dalam sebuah direktori yang disebut dengan “documents and
settings” sehingga di dalam direktori ini terdapat beberapa kumpulan direktori user login
misalnya :
c:\documents and settings\badu
Serhatian: Batch file ini tidak berlaku untuk yang direktori mydocuments nya di
pindahkan ke drive lain
Sehingga dengan begitu jika komputer kita login sebagai badu, sebagian settings
windows, my document dan outlooknya akan di simpan di user badu, dan user user lainya
memiliki setting tersendiri dan data tersendiri Kesimpulanya, struktur hirarki windows xp
bersifat dinamis, sehingga kita harus membuat sebuah parameter yang dinamis pula
untuk membuat batch filenya, sehingga untuk membackup data yang ada di windows ini
dapat dilakukan dengan cara: buatlah sebuat file baru dengan ekstensi .cmd misalkan
backup.cmd lalu paste kan code batch file berikut ini kedalam file backup.cmd dan save



@echo off :: variables set drive=\\Clarkconnect\shared\backup
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
echo ### Bekup Documents…
%backupcmd% “%USERPROFILE%\My Documents” “%drive%\My Documents”
echo ### Bekup Favorite…
%backupcmd% “%USERPROFILE%\Favorites” “%drive%\Favorites”
echo ### Bekup email dan addressbook (Outlook Express)…
%backupcmd% “%USERPROFILE%\Application Data\Microsoft\Address Book”
“%drive%\Address Book” %backupcmd% “%USERPROFILE%\Local
Settings\Application Data\Identities” “%drive%\Outlook Express”
echo ### Bekup EMail dan Contact (MS Outlook)…
%backupcmd% “%USERPROFILE%\Local Settings\Application
Data\Microsoft\Outlook” “%drive%\Outlook”
echo ### Bekup Registry…
if not exist “%drive%\Registry”
mkdir “%drive%\Registry”
if exist “%drive%\Registry\regbackup.reg” del “%drive%\Registry\regbackup.reg”
regedit /e “%drive%\Registry\regbackup.reg”
:: Sintak
:: %backupcmd% “…source directory…” “%drive%\…destination dir…”
echo BACKUP SELSE! www.MyRaffaell.Com/blog
@pause
Pertama tama mari kita analisa alur kode kode batch file itu: yang ada di baris pertama
program batch file adalah @echo off dan selanjutnya yang ditandai dengan tanda ::
adalah keterangan, itu tidak akan di eksekusi jadi cuekin saja. berikutnya adalah perintah
“set” perintah set ini adalah perintah untuk menyatakan sebuah variable dengan
command yang ada di windows seperti yang kita lihat di bawah ini:
set drive=\\Clarkconnect\shared\backup
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
artinya adalah membuat nama variable
"drive”
yang akan menggantikan letak sebuah server, letaknya ada di
"\\Clarkconnect\shared\backup”
sedangkan backupcmd adalah sebuah variable yang akan menggantikan perintah xcopy
lengkap dengan parameternya
"xcopy /s /c /d /e /h /i /r /k /y“.
note: untuk mengetahui arti perintah xcopy ini dapat anda lihat di manual windows dari
command prompt dengan menuliskan
xcopy /?

lalu, selanjutnya kita akan melihat line program berikut ini:
echo ### Bekup Documents...
%backupcmd% "%USERPROFILE%\My Documents" "%drive%\My Documents"
untuk menjalankan perintah yang sudah di set di berikan tanda % % hal ini memang
perlu dilakukan untuk memanggil perintah yang sudah di set oleh kita variable berikutnya
adalah %USERPROFILE% itu adalah sintaks standar dari windows untuk menentukan
lokasi path profile user yang sedang log on pada waktu itu, sama dengan
C:\documents and settings\si_user
sehingga perintah tersebut akan melakukan pengkopian masal dari
c:\documents and settings\badu\my documents ke
\\Clarkconnect\shared\backup\my documents
sehingga perintah semuanya dapat kita lihat:
xcopy /s /c /d /e /h /i /r /k /y "c:\documents and settings\badu\my
documents" "\\Clarkconnect\shared\backup\my documents"
sama untuk hal selanjutnya, yang berbeda hanya lokasi path nya saja.
sedangkan untuk registry untuk membackupnya dapat menggunakan perintah
regedit /e "%drive%\Registry\regbackup.reg"
note: ini tidak membackup seluruh registry windows, lihat manual windows untuk lebih
jelasnya
sedangkan 2 perintah di atasnya hanya akan melihat apakah sudah ada folder “registry”
dan file “regbackup.reg” secara umum, sintaks yang telah di set parameter memiliki
sintaks seperti ini:
%backupcmd% "...source directory..." "%drive%\...destination dir..."
lebih pendek dan lebih praktis!
nah untuk pengembangan yang lebih lanjut, bisa juga kita menggunakan parameter
tanggal, seperti sintaks yang ada di bagian bawah ini:
set folder=%date:~10,4%_%date:~4,2%_%date:~7,2%
%backupcmd% "..source dir.." "%drive%\%folder%\..destination dir.."
atau juga bisa menggunakan waktu pada saat folder itu di buat dengan menggunakan
parameter ini :
set hour=%time:~0,2%
if "%hour:~0,1%"==" "
set hour=0%time:~1,1%
set folder=%date:~10,4%_%date:~4,2%_% date:~7,2%_%hour%_%time:~3,2%%backupcmd% "..source dir.." "%drive%\%folder%\..destination dir.."
contoh: direktori yang bertanggal
Misalkan kita ingin membackup dengan membuat nama direktorinya sebagai tanggal
pada saat kita backup, untuk ini kita harus men set 3 variabel, yaitu : drive, folder, dan
eksekusi. variable drive akan menentukan root direktori dari backup. sedangkan variable
folder akan mengambil 2 digit “hari” pada tanggal saat itu (standart format tanggalnya
default “US”) yang artinya akan mengambil 2 digit dari perintah DATE yang di mulai
dari karakter ke 7 yang nantinya akan digunakan sebagai subdirektori. s
edangkan variabel eksekusi adalah command / perintahnya perhatikan batch file berikut
ini:
@echo off :: variabel set drive=D:\Backup
set folder=%date:~7,2% set eksekusi=xcopy /s /c /d /e /h /i /r /k /y
echo ### Backing up directory...
%eksekusi% "C:\Program Files\Folder_tertentu" "%drive%\%folder%"
echo Bekap Selesai bok! @pause
contoh diatas akan membackup :
C:\Program Files\Folder_tertentu ke D:\Backup\[dd]
dimana [dd] adalah hari pada saat itu, jika dalam 1 bulan folder2 ini tidak di hapus, maka
backup akan meng overwrite folder yang sudah ada sebelumnya karna adanya parameter
yang lengkap dari xcopy. ok, cukup sekian dulu hacking kali ini, kali kali aja ada yang
mau mengembangkan lebih baik lagi batch file dapat di share di comments website ini, eh
ya untuk ngembangkin command lainya bisa kita gunakan perintah kombinasi menjadi 1
line seperti: %backupcmd% “%USERPROFILE%” “%drive%\%UserName% - profile
FULL CUSTOMIZED BACKUP
batch file ini akan membuat backup automatis ke folder yang ada di server, dan backup
ini akan di handle oleh direktori berdasarkan tanggalnya, sehingga nantinya hirarki
direktorinya lebih rapih.
misalnya:
//server/backup/badu-06_31_2006/my documents
//server/backup/badu-06_31_2006/favorites
//server/backup/badu-06_31_2006/registry
//server/backup/badu-06_31_2006/folder lain yg mau di backup
sehingga dengan begini akan terhindar dari penumpukan nama file, dan filenya lebih
aman, dan bisa membackup direktori lebih dari 1 oleh 1 host ( asalkan harinya beda )
jika dalam 1 hari lebih dari 1x backup bisa di tambahkan variable time,berikut kodenya,
dan save sebagai backup.cmd dan taro di server kita, dan kopikan file ini ke desktop
masing masing user, sehingga si user tinggal di kasih tau aja, kalau mau ngebackup, klik
aja 2x file ini.

@echo off
:: variables
set drive=\\Clarkconnect\shared\backup
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
set tanggal=%date:~10,4%_%date:~4,2%_%date:~7,2%
echo ### Bekup Documents…
%backupcmd% “%USERPROFILE%\My Documents”
“%drive%\%UserName%-%tanggal%\My Documents”
echo ### Bekup Favorite…
%backupcmd% “%USERPROFILE%\Favorites”
“%drive%\%UserName%-%tanggal%\Favorites”
echo ### Bekup email dan addressbook (Outlook Express)…
%backupcmd% “%USERPROFILE%\Application Data\Microsoft\Address Book”
“%drive%\%UserName%-%tanggal%\Address Book”
%backupcmd% “%USERPROFILE%\Local Settings\Application Data\Identities”
“%drive%\%UserName%-%tanggal%\Outlook Express”
echo ### Bekup EMail dan Contact (MS Outlook)…
%backupcmd% “%USERPROFILE%\Local Settings\Application
Data\Microsoft\Outlook” “%drive%\%UserName%-%tanggal%\Outlook”
echo ### Bekup Registry…
if not exist “%drive%\%UserName%-%tanggal%\Registry” mkdir
“%drive%\%UserName%-%tanggal%\Registry”
if exist “%drive%\%UserName%-%tanggal%\Registry\regbackup.reg” del
“%drive%\%UserName%-%tanggal%\Registry\regbackup.reg”
regedit /e “%drive%\%UserName%-%tanggal%\Registry\regbackup.reg”
:: Sintak lengkapnya…
:: %backupcmd% “…source directory…” “%drive%\…destination dir…”
BACKUP SELSE! THIS BACKUP PROVIDE BY QZPLX !!! www.MyRaffaell.Com
@pause

No comments:

Post a Comment

silahkan postkan komentar anda