Zdravim vas vsetkych ...
Potreboval by som pomoct vytvorit k instalacii a odinstalacii dva davkove subory *.bat, pricom instrukcie by sa mali chovat nasledovne:
a.) Pri instalacii:
1. Skontrolovat, ci sa v uzivatelskom priecinku nachadzaju subory
xxx.tmp a
yyy.tmp, v pripade, ze sa nachadzaju zmazat ich a vypisat pre oba pripady hlasenie: Subor xxx.tmp bol najdeny a odstraneny/Subor xxx.tmp nebol najdeny (rovnako k druhemu suboru), pockat pri vypisani hlasenia napr. 2 sekundy s casovacom a spravou:
Cakajte prosim, prebieha dalsie spracovanie... (aby si uzivatel mohol hlasenie precitat) a po uvedenom casovom limite sa prejde na bod 2 nizsie.
Tuto som zatial pouzil nasledovne (sice to ciastocne funguje, ale ide mi aj o tie hlasenia a casovac):
Kód:
@echo off
rem // zmazat tieto subory
if exist "%APPDATA%\PriecinokXXXt\xxx.tmp" del "%APPDATA%\PriecinokXXXt\xxx.tmp"
if exist "%APPDATA%\PriecinokXXXt\yyy.tmp" del "%APPDATA%\PriecinokXXXt\yyy.tmp"
2. Skontrolovat, ci sa v systeme nachadza subor
hosts, ak ano, vypisat o tom hlasenie:
Subor hosts bol najdeny, pokracujem... (pockat 2 sekundy s casovacom na precitanie hlasenia), potom vytvorit zalozny subor
hosts_zaloha.bak a prejst k bodu 3 nizsie (ak tento subor neexistuje, tak rovnako vypisat hlasenie:
Subor hosts neexistuje, prajete si ho vytvorit ? ... a pockat na rozhodnutie uzivatela a ak ten vyberie moznost Nie, tak ukoncit cely subor *.bat s hlasenim:
Vybrali ste moznost Nie, program nemoze pokracovat...3. Ak subor
hosts riadne existoval (alebo ak neexistoval a uzivatel vybral moznost Ano pre jeho vytvorenie), tak:
zapisat do suboru nasledovne adresy pod seba:
http://www.skuska1.com,
http://www.skuska2.com (tu chcem poznamenat, ze by som potreboval, aby sa tieto adresy vkladali pod seba na nove riadky kazda - ak totiz predosly subor host obsahuje ine hodnoty a nie je zariadkovane na konci poslednej instrukcie, tak sa dalsia prva zapisovana hodnota nezariadkuje a dopise sa suvisle do riadku poslednej instrukcie v v povodnom subore hosts)
Zatial som zalohu suboru hosts a zapisanie hodnot riesil takto:
Kód:
rem // vytvori zalozny soubor hosts a skopiruje do suboru hosts adresy
rem // ak subor uz existuje
if exist "%windir%\system32\drivers\etc\hosts_zaloha.bak" del "%windir%\system32\drivers\etc\hosts_zaloha.bak"
copy "%windir%\system32\drivers\etc\hosts" "%windir%\system32\drivers\etc\hosts_zaloha.bak"
attrib -s -h -r %windir%\system32\drivers\etc\hosts > nul 2>&1
echo. >> "%windir%\system32\drivers\etc\hosts"
echo 127.0.0.1 www.skuska1.com >> "%windir%\system32\drivers\etc\hosts"
echo 127.0.0.1 www.skuska2.com >> "%windir%\system32\drivers\etc\hosts"
echo Hotovo - stlacte lubovolnu klavesu
pause
b.) Pri odinstalacii:1. Tu by som potreboval najprv skontrolovat, ci sa zalozny subor
hosts_zaloha.bak v systeme nachadza a vypisat o tom hlasenie s casovacom 2 sekund: napr.
Zalozny subor hosts_zaloha.bak najdeny, pokracujem... pristupit k bodu 2 nizsie (ak nebol najdeny, vypisat hlasenie:
Zalozny subor nebol najdeny... a ponechat na uzivatela, aby stlacil lubovolnu klavesu pre ukoncenie)
2. Ak bol zalozny subor najdeny, tak odstranit subor
hosts v ktorom som predtym spravil zmeny, nahradit ho zaloznym suborom a vypisate hlasenie o uspechu: Subor hosts bol uspesne obnoveny... a ponechat na uzivatelovi ukoncenie lubovolnou klavesou.
Toto som zatial riesil takto:
Kód:
attrib -s -h -r "%windir%\system32\drivers\etc\hosts" > nul 2>&1
if exist "%windir%\system32\drivers\etc\hosts_zaloha.bak" (
copy "%windir%\system32\drivers\etc\hosts_zaloha.bak" "%windir%\system32\drivers\etc\hosts"
del "%windir%\system32\drivers\etc\hosts_zaloha.bak"
)
echo Subor hosts bol uspesne obnoveny - stlacte lubovolnu klavesu
pause
Budem vam vdacny ak si niekto najde cas a pomoze mi s tymto kodom, je mi jasne, ze to bude potrebne osetrit na rozne udalosti, na ktore som mozno teraz ani nemyslel.
Bol by som velmi rad ak by sa dalo nejako osetrit opakovane vkladanie udajov uzivatalom, ktory by mohol klikat opakovane na *.bat alebo *.exe subor, ktory vytvorim a hodnoty by sa duplicitne zapisovali v cykle v subore hosts. Neviem, ako na to, aby sa dalo este pred zapisanim novych hodnot priamo zo suboru hosts citat, ci sa v nom tieto uz nachadzaju a podla toho rozhodnut, ci sa zapisu alebo nie, pretoze uz existuju.