Politechnika częstochowska



Pobieranie 165,95 Kb.
Strona3/3
Data24.10.2017
Rozmiar165,95 Kb.
1   2   3

Polecenia warunkowe

Polecenie if służy do tworzenia instrukcji warunkowych. Ma następujące postaci:

i f [not] errorlevel n polecenie Sprawdzenie wartości zmiennej errorlevel

i f [not] exists plik polecenie Sprawdzanie istnienia pliku

i f [not] [/I] Str1 op Str2 op Porównanie dwóch ciągów znaków

if [not] defined zm polecenie Sprawdzanie, czy zmienna została zdefiniowana

W niezanegowanej postaci pierwsze polecenie wykonuje zadane polecenie, gdy wartość zmiennej errorlevel jest większa niż lub równa n, drugie polecenie wykonuje zadane polecenie, jeżeli zadany plik istnieje, a trzecie, gdy porównanie zadanych ciągów znaków daje wartość True (opcja /I umożliwia wykonanie porównania z uwzględnieniem znaków). Czwarta postać wykonuje zadane polecenie, jeżeli wskazana zmienna została zdefiniowana.

Dostępne są pokazane poniżej operatory porównania ciągów znaków (działają one z uwzględnieniem wielkości znaków):

EQU == (dwa znaki równości); dwa ciągi znaków są równe.

NEQ Dwa ciągi znaków są różne.

LSS Pierwszy ciąg znaków jest leksykalnie mniejszy niż drugi.

LEQ Pierwszy ciąg znaków jest leksykalnie mniejszy lub równy drugiemu.

GTR Pierwszy ciąg znaków jest leksykalnie większy od drugiego.

GEQ Pierwszy ciąg znaków jest leksykalnie większy lub równy drugiemu.

Oto kilka prostych przykładów,:

C:\> type maybe.bat

echo off

silly 2> junk.junk

if errorlevel 1 echo Command failed.

if not exist c:\boot.ini echo Missing BOOT.INI file.

if not defined PATH echo No Path variable defined.

set a="apple"

set b="pear"

if /I %a% == "APPLE" echo crunch

if not %a% EQU %b% echo apples aren%'t pears

if %a% LSS %b% echo munch

C:\> maybe

Command failed.

crunch

apple aren't pears



munch

Przyjmowanie danych wejściowych użytkownika

Poniższe polecenia są stosowane do przyjmowania w skrypcie danych wprowadzanych przez użytkownika:

pause

Przerwanie wykonywania skryptu do momentu naciśnięcia klawisza przez użytkownika.



choice [/C:opcje][/S][/T:c,n] monit

Pokazanie użytkownikowi monitu i przyjmowanie odpowiedzi. Polecenie to nadaje zmiennej errorlevel wartość liczbową odpowiadającą dokonanemu wyborowi (numerowanie rozpoczyna się od 1). Poprawne jednoznakowe odpowiedzi są określane przez ciąg następujący po opcji /C (domyślnie YN). Opcja /S powoduje, że w wybieranych znakach są rozróżniane duże i małe litery (domyślnie nie są), a opcja /`T powoduje, że litera c jest wybierana domyślnie po upłynięciu zadanego czasu n sekund.

Oto prosty przykład:

C:\> type pick.bat

echo off

choice /C:abcde /T:b,4 "Wybierz literę od A do E: "

echo Wybrałeś %errorlevel% znak.

C:\> pick

Wybierz literę od A do E: [A,B,C,D,E]? D

Wybrałeś 4 znak.

C:\> pick

Wybierz literę od A do E : [A,B,C,D,E] ? Czas minął

Wybrałeś 2 znak.

Przykłady :

Poniższy skrypt wyszukuje i kasuje na dysku D: pliki o nazwie podanej w parametrze wywołania. Może być on użyty np. do kasowania plików tymczasowych, gdy wywoła się go z parametrem *.tmp

@echo off

dir d:\%1 /b/s > d:\znalez.txt

type d:\znalez.txt

choice /c:TN Czy usunąć wyświetlone pliki?

goto ety%errorlevel%

:ety1


del d:\%1 /s

goto koniec

:ety2

echo Nie kasuję



:koniec

pause


delete znalez.txt

  Skrypt wypisuje datę ostatniego logowania się danego użytkowinka na danym komputerze. Aby działał poprawnie powinien być uruchamiany w Autostarcie. Skrypt nie działa podczas pierwszego logowania się użytkownika, gdyż nie jest jeszcze wtedy utworzony plik %username%.txt

@echo off

@echo Witaj! Ostatnio %username% był tu

type %username%.txt

start /wait /b date /T > %username%.txt

pause

  Skrypt umożliwia mapowanie dysku sieciowego. Można go zautomatyzować np. poprzez wywoływnie z parametrami będącymi nazwą hosta czy użytkownika. Poniższy przykład pokazuje podłączanie jako dysku g: katalogu studenta mającego konto na Zlym



@echo off

net use g: \\zly\homes [hasło] /user:użytkownik

Jeżeli nie podamy parametru hasło zostaniemy o nie zapytani podczas wykonywania skryptu.

  Działanie tego skryptu jest bardzo podobne do tego, który wypisywał datę

ostatniego logowania. Jeżeli będzie on wrzucony do Autostartu, będzie zapisywał do

pliku dziennik.txt daty i nazwy użytkowników logujących się na danym komputerze.

@echo off

date /T >> dziennik.txt

@echo - %username% - >> dziennik.txt

@echo ------------------- >> dziennik.txt


Skrypt sprawdzający kiedy dany użytkownik ostatnio się zalogował

@echo off

echo Ostatnio użytkownik '%username%' zalogował się na tym komputerze:

type %SystemRoot%\%username%.log

date /T > %SystemRoot%\%username%.log

pause


Skrypt ten działa poprawnie poza przypadkiem pierwszego zalogowania się użytkownika. Wtedy nie ma jeszcze pliku %username%.log. Plik ten możnaby umieścić w katalogu domowym użytkownika (zmienne %HOMEDIR% i %HOMEPATH%) lub przeznaczyć na niego specjalny katalog. Sam skrypt można umieścić w autostarcie dla wszystkich użytkowników lub w polu Nazwa skryptu logowania w Profilu środowiska użytkownika w menedżerze użytkowników
.

Skrypt kasujący pliki o żądanym rozszerzeniu

@echo off

dir \*.%1 /S /B > found.txt

type found.txt

choice /c:TN Czy usunąć wyświetlone pliki

goto label%errorlevel%

:label1

echo Kasuję wymienione pliki!



del \*.%1 /S

goto koniec

:label2

echo Kasowanie odwołane.



:koniec

Skrypt wywołuje się z parametrem, którym jest samo rozszerzenie bez znaku *.



Skrypt mapujący dysk dowolnego komputera w sieci

@echo off

net use e: \\zly\homes hasło /user:nazwa użytkownika

Skrypt przy logowaniu podłącza jako dysk e: katalog domowy studenta znajdujący się na Złym.

Literatura:

chip-special -czerwiec 1997;

chip 04/99,07/98 i archiwum www.chip.pl

pc-kurier 2,6,13/97,i

enter 02/99;

tittel, hudson, stewart - nt workstation 4

windows nt server 4.0 administrator biblia - robert cowart, kenneth gregg;

windows nt server 4.0 administracja dla profesjonalistów;

hacker proof, czyli jak zabezpieczyć się przed intruzami;

windows nt - czarna księga administratora;

www.microsoft.com/poland/nts40/bezpieczenstwo.htm; www.netsys.com/firewalls/firewalls-9512/0296.htm1;

www.ntshop.net;

www.microsoft.com /poland/nt_s_40/bezpieczenstwo.htm;

www.netsys.com/firewalls/firewalls-9512/0296.html;

www.ntsinc.com/ntws.html;

Paul Taylor „Windows NT 4 Server. Czarna księga administratora”,

Marek Zieliński, Mariusz Kaleta „Windows NT 4.0 PL Nowa technologia”,

Chip Specjal Windows NT



K. Kleszyński, G. Tworek „Windows NT – bezpieczny serwer”






1   2   3


©operacji.org 2017
wyślij wiadomość

    Strona główna