Desenv. Func. Sistem. Inform.

ASI-2

Windows

Pràctica 1:  Arxius de guiío de l'interpret d'ordres de Windows (Arxius .BAT)

13/11/08

ARXIUS DE GUIÓ DE L'INTERPRET D'ORDRES DE WINDOWS

INTRODUCCIÓ.
Windows permet emmagatzemar una sèrie d'ordres de cmd.exe dins d'un fitxer de texte amb l'extensió ".bat" (que es pot crear amb l'editor edit o amb notepad.exe), de manera que quan cridem a aquesta fitxer, el sistema operatiu el considerarà com una mena de fitxer "executable", i executarà les ordres que hem desat dins seu. Els comandaments s'executaran secuencialment, és a dir, una darrera l'altra, i en l'ordre en el qual es trobin dins del fitxer.

DOCUMENTACIÓ
Les ordres de l'interpret d'ordres orientades a ser utilitzades dins d'arxius .bat són:

@

echo

rem

pause

call

% (Pas de pàrametres)

if exist / if not exist

if errorlevel / if not errorlevel

if '%n'=='Cadena_Caract'

goto i :etiqueta

choice

start

exit

shift

cls

Per trobar informació sobre cadascuna d'aquestes ordres:
a) Executeu des de l'interpret d'ordres: nom_ordre /? (Exemple: if  /?).
b) http://www.computerhope.com/batch.htm
c) http://technet.microsoft.com/en-us/library/bb490890.aspx
d) http://www.elhacker.net/ProgramacionBat.htm

EXEMPLES

1- Amb l'ordre if:

Exemple 1
@echo off
cls
echo "Hola %1, soc en PC1 i estic al teu servei"
if not exist a:\%2 echo "El fitxer no existeix"
pause
goto final
if exist a:\%2 copy a:\%2 a:\prac3
:final

Exemple 2
@echo off
cls
if "%2"=="ptrmko" goto et1
echo "Password Incorrecte"
pause
goto et2
:et1
echo "Hola %1"
pause
dir c:\
:et2

1- Amb l'ordre choice:

Exemple 1
@echo off
cls
echo MENU
echo 1- Fer un llistat del directori arrel del disquete.
echo 2- Fer un llistat del directori a:\pr3.
echo 3- Fer un llistat del directori a:\tcv20.
echo 4- Fer un llistat del directori a:\test.
echo 5- Esborrar el directori a:\tcv20.
echo 6- Esborrar el directori a:\test.
echo 7- Sortir sense fer res.
choice /c:1234567 "Escull una opcio "
if errorlevel 1 if not errorlevel 2 dir a:\
if errorlevel 2 if not errorlevel 3 dir a:\pr3
if errorlevel 3 if not errorlevel 4 dir a:\tcv20
if errorlevel 4 if not errorlevel 5 dir a:\test
if errorlevel 5 if not errorlevel 6 rd /s /q a:\tcv20
if errorlevel 6 if not errorlevel 7 rd /s /q a:\test
if errorlevel 7 echo "Sortint del programa"

Exemple 2
@echo off
cls
echo MENU
echo 1- Executa pr3p1.bat
echo 2- Executa pr3p2.bat
echo 3- Sortir sense fer res.
choice /c:123 "Escull una opcio "
if errorlevel 1 if not errorlevel 2 call pr3p1
if errorlevel 2 if not errorlevel 3 call pr3p4
if errorlevel 3 echo "Sortint del programa"


PRÀCTICA A REALITZAR.

1- Crea un arxiu de guió que comprovi si existeix el directori c:\temp. Si no existeix el directori, s'haurà de crear, en cas contrari el programa continuarà la seva execució. Dins d'aquest directori s'hauran de crear (si no existeixen) els directoris c:\temp\test1 i c:\temp\test2. Dins del subdirectori c:\temp\test1 s'ha de desar el propi arxiu de treball per lots (o sigui, ell mateix s'ha d'autocopiar dins del directori c:\temp\test1).  L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s1.bat.

2- Crea un fitxer .bat, al qual puguis passar com a paràmetre un password. Si el password és correcte (el password ha de ser ETPC), et presentarà per pantalla un menú amb les següents opcions:

a)
Fer un llistat del directori arrel del disc dur.
b) Fer un llistat del directori c:\windows.
c) Fer un llistat del directori c:\Documents and Settings.
d) Esborrar el directori c:\temp.
e) Esborrar el directori c:\temp\test1
f) Esborrar el directori c:\temp\test2

Un cop executat l'opció del menú, el programa s'ha d'aturar fins que es premi alguna tecla. Llavors, netejarà la pantalla, i ens presentarà un segon menú, amb dos opcions:

a) Tornar al primer menú.
b) Sortir del programa i tornar a MSDOS.

En cas de que el password que hem passat com a paràmetre sigui incorrecte, sortirà per pantalla el missatge d'error "PASSWORD INCORRECTE", s'aturarà fins que es premi alguna tecla,  i un cop premuda, el programa finalitzarà, tornant a l'interpret d'ordres.

L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s2.bat.

3- Crea un fitxer .bat, que doni a l'usuari l'oportunitat d'escollir entre les següents 3 opcions:

a) Executar el programa p6s1.bat si existeix dins del directoric:\temp\test1 . Si no existeix, sortirà per pantalla el missatge d'error "EL FITXER NO EXISTEIX", el programa s'aturarà fins que es premi alguna tecla,  i un cop premuda, finalitzarà, tornant a MSDOS.
b) Executar el programa p6s2.bat si existeix dins del directori c:\temp\test1. Si no existeix, sortirà per pantalla el missatge d'error "EL FITXER NO EXISTEIX" , el programa s'aturarà fins que es premi alguna tecla,  i un cop premuda, finalitzarà, tornant a MSDOS.

c) Sortir de l'arxiu de guió i tornar a l'interpret d'ordres.

L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s3.bat.

4- Fes un arxiu de guió que et demani com a paràmetre un número indeterminat d'extensions com a paràmetre. Fes que l'arxiu mostri per pantalla el contingut de tots els arxius que tinguin les extensions indicades i que es troben dins del directori c:\windows. NOTA: Utilitza shift  i  for  /R

L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s4.bat.

5- Crea un fitxer .bat, al qual puguis passar com a paràmetre un password. Si el password és correcte (el password ha de ser ETPC), et presentarà per pantalla un menú amb les següents opcions:

a)
Executar la llibreta de notes de Windwos.
b) Executar la calculadora de Windwos.
c) Executar l'Internet Explorer.
d) Executar l'administrador de tasques de Windwos.
e) Executar la consola d'administració de serveis de Windows
f) Visualitzar el contingut de la clau del registre de Windows HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
g) Exporta el contingut de la clau del registre de Windows HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run din d'un fitxer de nom run.reg

Un cop executat l'opció del menú, el programa s'ha d'aturar fins que es premi alguna tecla. Llavors, netejarà la pantalla, i ens presentarà un segon menú, amb dos opcions:

a) Tornar al primer menú.
b) Sortir del programa i tornar a MSDOS.

En cas de que el password que hem passat com a paràmetre sigui incorrecte, sortirà per pantalla el missatge d'error "PASSWORD INCORRECTE", s'aturarà fins que es premi alguna tecla,  i un cop premuda, el programa finalitzarà, tornant a l'interpret d'ordres.

L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s5.bat.

6- Crea un fitxer  .bat que et permeti configura de manera estàtica la interfície de xarxa. Com a primer paràmetre hauràs de passar l'adreça IP, com a segon paràmetre la màscara, com a tercer paràmetre el router, com a quart paràmetre el servidor DNS primari, i com a 5è paràmetre el servidor DNS secundari.

L'arxiu no ha de permetre veure a l'usuari l'execució de cap ordre per pantalla. L'arxiu ha de netejar pantalla en el moment d'executar-se. El nom de l'arxiu de guió serà p6s6.bat.

7- S'han de lliurar els arxius de guió comprimits dins d'un arxiu de nom asi2_dfsi_nom_cognom_p1_windows.tar.gz que s'han d'enviar a cf(arrova)collados.org.  A l'assumpte del correu heu de posar asi2_dfsi_nom_cognom_p1_windows. L'últim dia per lliurar el treball és el 27-11-2008. Cada dia que passi d'aquesta data, treuré dos punts a la nota del treball.
ANNEX 1
Des d'aquest link podeu descarregar la comanda: choice.com. Aquesta ordre l'heu de copiar a c:\windows\system32.

ANNEX 2
a)
Per executar una consola d'administració del sistema s'ha d'utilitzar l'ordre mmc.exe. Les consoles d'administració del sistema tenen extensió .msc i es troben habitualment a c:\windows\system32.
b) Per visualitzar, modificar, exportar,etc.... una entrada o clau del registre s'ha d'utilitzar l'ordre reg.

ANNEX 3
a) L'ordre netsh permet configurar la interfície de xarxa de manera estàtica des de l'interpret d'ordres de la següent manera:
netsh interface ip set address name="Conexión de área local" source=static addr=172.16.200.20 mask=255.255.0.0 gateway=172.16.0.7 gwmetric=1  
netsh interface ip set dns name="Conexión de área local" source=static addr=80.58.0.33
netsh interface ip add dns name="Conexión de área local" addr=80.58.32.97  index=2

b)
L'ordre netsh permet configurar la interfície de xarxa de manera dinàmica des de l'interpret d'ordres de la següent manera:
netsh interface ip set address name="Conexión de área local" source=dhcp 

c)
L'ordre netsh permet canviar el nom d'una interfície de xarxa de la següent manera:
netsh interface set interface name="Conexión de área local" newname=eth0