napisz plik wsadowy, którego zadaniem jest wyświetlenie przekazanych do niego argumentów (2 argumenty) oraz nazwy samego pliku. napisać plik wsadowy spis.bat, który:
w pliku dll.txt umieści spis wszystkich plików z katalogu C:\WINDOWS\SYSTEM\ mających rozszerzenie DLL,
w pliku drv.txt umieści spis wszystkich plików z katalogu C:\WINDOWS\SYSTEM\ mających rozszerzenie DRV,
w pliku a.txt umieści spis wszystkich plików z katalogu C:\WINDOWS\SYSTEM\, których nazwa rozpoczyna się literą A,
przed rozpoczęciem sprawdzi, czy powyższe pliki (*.txt) istnieją - jeśli tak, to je usunie.
@echo off
echo 1 argument: %1
echo 2 argument: %2
echo nazwa pliku: %0
if exist dll.txt del dll.txt
if exist drv.txt del drv.txt
if exist a.txt del a.txt
dir c:\winnt\system\*.dll > dll.txt
dir c:\winnt\system\*.drv > drv.txt
dir c:\winnt\system\a* > a.txt
napisać plik wsadowy kopiuj.bat służący do tworzenia kopii pliku pod inną nazwą, przyjmując następujące założenia:
plik działa tylko w przypadku gdy został uruchomiony z dwoma różnymi argumentami,
jeżeli plik o takiej nazwie jak nazwa kopii już istnieje, to kopiowanie nie jest wykonywane (stosowny komunikat),
jeśli po nazwie pliku wsadowego podamy '/?' to wyświetli informacje o sposobie użycia,
zastąp systemowy komunikat o kopiowaniu 'Skopiowano 1 plik(ów)' własnym
@echo off
if "%1"=="/?" goto pomoc
if not %1==%2 (
if exist %2 (echo plik %2 już istnieje, kopiowanie nie może być kontynuowane
goto koniec
) else (
copy %1 %2 > NUL
echo Pomyślnie skopiowano plik %1
goto koniec
)
)
:pomoc
echo Służy do tworzenia kopii pliku pod inną nazwą
echo.
echo użycie:
echo.
echo KOPIUJ [źródło] [cel]
echo.
:koniec
skopiować zawartość folderu Folder1 do folderu Folder2, gdzie zmienna %1 jest zamieniana na wartość Folder1, a zmienna %2 jest zamieniana na wartość folder2, należy wpisać następujące polecenie w pliku wsadowym wsad.bat:
xcopy %1\*.* %2
Aby uruchomić ten plik, należy wpisać np:
wsad.bat C:\folder1 D:\folder2
Efekt tego polecenia jest taki sam, jak efekt następującego polecenia wpisanego w pliku wsadowym:
xcopy C:\folder1 \*.* D:\folder2
3
Zadanie 1
używając poleceń MD i CD utwórz w katalogu c:\Users\Nazwisko następującą strukturę katalogów:
przy pomocy edytora EDIT utwórz cztery pliki tekstowe o nazwach prog1.bat, prog2.bat, list1.txt, list2.txt i zapisz je w katalogu DOC\2000. Niech pliki list1.txt i list2.txt zawierają po kilka wierszy tekstu.
jedną komendą COPY przekopiuj pliki prog1.bat i prog2.bat do katalogu BATCH (użyj znaków specjalnych * lub ?)
jedną komendą COPY przekopiuj pliki prog1.bat i list1.txt do katalogu UTIL (użyj znaków specjalnych * lub ?)
przejdź do katalogu 2000 i jedną komenda DEL usuń pliki prog1.bat i prog2.bat
przejdź do katalogu PASCAL i jedna komenda usuń pliki list1.txt i list2.txt z katalogu 2000
Zadanie 2 (przełączanie wejść-wyjść)
Do przełączania wejść wyjść używamy trzech symboli:
<file dane wejściowe polecenia pobierane są z pliku file
>file dane wyjściowe polecenia są kierowane do pliku file
>>file dane wyjściowe są dołączane na koniec pliku file
Aby lepiej zrozumieć sens powyższych symboli wykonaj podane polecenia i staraj się zinterpretować wyniki:
TYPE list1.txt
TYPE list1.txt > list1.bak
DIR
DIR > listing
TYPE listing
DIR .. >>listing
TYPE listing
EDIT listing
Zadanie 3 (potoki i filtry)
Potok pozwala na połączenie w łańcuch dwóch lub więcej poleceń. Wyjście jednego z nich jest używane jako wejście następnego. Znakiem służącym do tworzenia potoku jest kreska pionowa |.
Na przykład, często dwa polecenia:
A > X
B < X
można zapisać w formie:
A | B
Filtr jest to program, który jest tak skonstruowany, że może korzystać z danych wyjściowych innego polecenia w celu ich dalszego przetworzenia. W DOSie dostępne są trzy standardowe filtry: MORE, FIND, SORT
Wykonaj polecenia
CD \USERS
DIR
DIR | MORE
DIR | SORT
DIR | SORT /+10
DIR | SORT /+10/R
Przeczytaj opis poleceń MORE i SORT (MORE /? lub HELP MORE itd.)
Zadanie 4 (filtr FIND)
Przeczytaj opis polecenia FIND
W bieżącym katalogu utwórz pliki dane1.txt dane2.txt. Każdy niech zawiera po kilka linii tekstu. Niektóre linie niech zawierają słowo czwartek, spotkanie a inne oba te słowa naraz:
Wykonaj poniższe polecenia i staraj się zrozumieć co one robią:
FIND ”spotkanie” dane1.txt
FIND "spotkanie" *.txt
FIND ”spotkania” *.txt | FIND ”czwartek”
FIND ”spotkania” *.txt | FIND ”czwartek” | SORT | MORE
DIR C:\USERS | FIND ”<DIR>”
DIR C:\USERS | FIND /V ”<DIR>”
Jak wyświetlić wszystkie wiersze z pliku dane1.txt nie zawierające słowa czwartek?
Zadanie 5 (pierwsze pliki wsadowe)
Pliki wsadowe (tzw. batch'e) są to pliki tekstowe ASCII, zawierające ciągi poleceń powłoki systemowej, które będą wykonywane sekwencyjnie. Oprócz normalnych poleceń, które możemy podawać w wierszu zachęty systemowej, interpreter plików wsadowych rozumie kilka dodatkowych poleceń sterujących, które mogą być zawarte w plikach wsadowych (np. CALL, ECHO, IF, SHIFT, PAUSE, REM) oraz umożliwia przekazywanie parametrów. Plik wsadowy musi mieć rozszerzenie nazwy BAT.
Utwórz i uruchom pliki wsadowe. Obserwuj dokładnie wyniki i staraj się zrozumieć co się dzieje.
ECHO1.BAT
Echo Hello World!
Echo How are you getting on?
Co się stanie gdy w powyższym przykładzie nazwę ECHO1.BAT zamienimy na ECHO.BAT?
ECHO2.BAT
@Echo OFF
Echo Hellow World!
Echo On
MYTYPE.BAT
@Type *.bat
Zadanie 6 (parametry pliku wsadowego )
Parametry wiersza poleceń przekazane do pliku wsadowego są w nim oznaczane symbolami: %0, %1, %2,...,%9
Parametr %0 oznacza samą nazwę pliku wsadowego. %1, %2 ... są to kolejne parametry, które wystąpiły w wierszu wywołania danego pliku wsadowego.
Utwórz plik i uruchom plik wsadowy:
PARAM1.BAT
@Echo Off
Echo Oto przekazane mi parametry
Echo %0
Echo %1
Echo %2
Wywołaj go z różnymi parametrami:
PARAM1.BAT
PARAM1.BAT a
PARAM1.BAT a b c d e
PARAM1.BAT Ala ma kota. As to Ali pies
Zadanie 7
Utwórz plik wsadowy MKDIR1.BAT, który będzie tworzył w bieżącym katalogu trzy katalogi o nazwach podanych jako parametry wiersza poleceń.
MD %1
MD \%1\%2
MD \%1\%3
Zadanie 8
Utwórz plik wsadowy MKDIR2.BAT, który będzie tworzył w bieżącym katalogu katalog o nazwie podanej jako pierwszy parametr wywołania, a następne dwa parametry będą nazwami podkatalogów tworzonych w tym pierwszym.
posortować zawartość pliku i wynik tej operacji umieścić w nowym pliku należy wprowadzić
sort < plik.txt > posortowany.txt
Strumienie danych, potoki danych oraz pliki wsadowe
1. Strumienie danych
Ekran monitora jest traktowany jako standardowe urządzenie wyjściowe jeżeli system operacyjny nie otrzyma od użytkownika innego polecenia. Klawiatura pełni rolę standardowego urządzenia wejściowego, a ekran wyjściowego (CON).
Do niestandardowych urządzeń wejścia/wyjścia w systemie operacyjnym należą:
Drukarka(PRN), złącza szeregowe (COM1 do COM4), złącza równoległe (LPT1 do LPT3), urządzenie puste (NUL), synonim nazwy COM1 (AUX).
Urządzenie NUL jest urządzeniem logicznym, któremu nie odpowiada żadne urządzenie fizyczne. Zapisywanie do urządzenia pustego nie powoduje żadnych efektów, natomiast odczytywanie powoduje sygnalizację końca zbioru.
Przekierowania w Windows 2000
> (znak większości) przekierowuje dane z konsoli do pliku
p.bat > plik.txt - przekierowuje wyjście pliku wsadowego p.bat do pliku plik.txt.
>> wyjście zostaje dopisane do pliku jeśli taki już istnieje
p.bat >> plik.txt
utworzy plik plik.txt i skieruje do niego wyjście pliku p.bat. Jeśli plik.txt istnieje, wyjście pliku p.bat zostanie do niego dopisane
2> przekierowuje tylko wyjście błędów
p.bat 2> error.fil
wysyła wszelkie błędy wynikające z uruchomienia pliku p.bat do pliku error.fil
2>> tak jak 2>, lecz wyjście zostanie dodane do istniejącego pliku
< (znak mniejszości) podaje dane ze źródła na wejście polecenia
[polecenie] < plik.txt
otwiera plik.txt za pomocą programu [polecenie]. Aby posortować zawartość pliku i wynik tej operacji umieścić w nowym pliku należy wprowadzić
sort < plik.txt > posortowany.txt
2. Przetwarzanie potokowe
Przetwarzanie potokowe polega na skierowaniu strumienia danych wyjściowych jednego polecenia do innego polecenia jako strumienia danych wejściowych.
| - (tzw. potok) przesłanie standardowego wyjścia polecenia1 jako standardowego wejścia do polecenia2.
polecenie1 | polecenie2
Polecenia stosowane w przetwarzaniu potokowym
• Polecenie more wyświetla kolejno pojedyncze strony zawartości pliku lub danych wyjściowych polecenia.
• Polecenie find wyszukuje w plikach i danych wyjściowych poleceń znaki określone przez użytkownika.
• Polecenie sort sortuje zawartość plików lub danych wyjściowych poleceń.
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 2
Polecenie SORT
Czyta dane wejściowe, sortuje te dane i wyświetla wyniki na ekranie albo zapisuje je do pliku lub do innego urządzenia.
sort [/r] [/+n] [/m kilobajty] [/l ustawienia_regionalne] [/rec znaki] [[dysk1:][ścieżka1]nazwa_pliku1] [/t [dysk2:][ścieżka2]] [/o [dysk3:][ścieżka3]nazwa_pliku3]
[polecenie |] sort [/r] [/+n] [/m kilobajty] [/l locale] [/rec znaki] [[dysk1:][ścieżka1]nazwa_pliku1]
[/t [dysk2:][ścieżka2]] [/o [dysk3:][ścieżka3]nazwa_pliku3]
/r Odwraca kolejność sortowania tzn. sortuje od Ż do A, a następnie od 9 do 0.
/+n Określa numer pozycji znaku, n, od którego polecenie sort rozpoczyna każde porównanie. Na przykład, /+3 oznacza, że każde porównanie powinno rozpoczynać się od trzeciego znaku w każdym wierszu. Wiersze zawierające mniejszą liczbę znaków niż n są sortowanie przed innymi wierszami. Porównania rozpoczynają się domyślnie od pierwszego znaku w każdym wierszu.
/m kilobytes podaje w kilobajtach rozmiar pamięci podstawowej użytej w operacji sortowania. W operacji sortowania użyte zostaje zawsze przynajmniej 160 kB pamięci podstawowej.
/l ustawienia regionalne zmienia porządek sortowania narzucony przez ustawienia
regionalne
/rec znaki określa maksymalną ilość znaków w rekordzie lub linii na wejście komendy. Domyślna wartość to 4096, maksymalnie 65535.
/t [dysk2:][ścieżka2]
Określa ścieżkę katalogu, którym zostanie zapisany magazyn roboczy polecenia sort, jeżeli dane nie zmieszczą się w pamięci operacyjnej. Domyślnie używany jest systemowy katalog tymczasowy.
/o [dysk3:][ścieżka3]nazwa_pliku3
Określa plik, w którym zostaną zapisane sortowane dane wejściowe. Jeżeli plik nie zostanie określony, dane są zapisywane do wyjścia standardowego. Określenie pliku wyjściowego jest metodą zapewniającą większą szybkość sortowania niż readresowanie tego samego pliku jako wyjście standardowe.
Polecenie Find
Wyszukuje określony ciąg znaków w pliku lub plikach.
Po przeszukaniu określonych plików, polecenie find wyświetla wszystkie wiersze zawierające określony ciąg znaków.
find [/v] [/c] [/n] [/i] "ciąg" [[dysk:][ścieżka]nazwa_pliku[...]]
Parametry
/v Wyświetla wszystkie wiersze zawierające określony ciąg znaków.
/c Wyświetla tylko liczbę wierszy, które zawierają określony ciąg znaków.
/n Poprzedza każdy wiersz jego numerem w pliku.
/i Określa, że przy wyszukiwaniu nie będzie uwzględniana wielkość znaków.
"ciąg" Określa grupę znaków, która ma być wyszukana. Tekst parametru ciąg musi być ujęty w cudzysłów.
[dysk:][ścieżka] nazwa_pliku Określa lokalizację i nazwę pliku, w którym ma być wyszukany określony ciąg znaków.
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 3
3. Wbudowane zmienne środowiskowe
Istnieje kilka przydatnych wbudowanych zmiennych środowiskowych:
%username% Zawiera nazwę bieżącego użytkownika (małymi literami).
%homedrive% Jest rozwijana w literę dysku na którym znajduje się katalog macierzysty bieżącego użytkownika.
%homepath% Jest rozwijana w ścieżkę katalogu macierzystego bieżącego użytkownika.
%homeshare% Jest rozwijana w zasób dzielony zawierający katalog macierzysty bieżącego użytkownika.
%processor architecture% Jest rozwijana w słowo kluczowe zawierające producenta procesora zainstalowanego w systemie (x86 lub alpha).
%processor level% Jest rozwijana w liczbę wskazującą model procesora z danej rodziny.
%errorlevel% Zawiera stan zakończenia ostatniego polecenia. Wartość 0 generalnie wskazuje poprawne wykonanie, a wartość 1 wskazuje błąd. Niektóre polecenia wykorzystują zmienną do określenia wartości, której interpretacja jest zależna od polecenia.
4. Pliki wsadowe (skrypty)
Skryptem nazywamy zbiór poleceń zawartych w pliku tekstowym do wielokrotnego wykorzystania. Skrypty uruchamiamy w taki sam sposób jak programy wykonywalne. Po uruchomieniu skryptu, wykonywane są w nim polecenia, jedno po drugim, w takiej samej kolejności w jakiej zostały zapisane.
Argumenty skryptu
Pliki wsadowe mogą pobierać argumenty. Wewnątrz programu wsadowego argumenty jego wywołania reprezentowane są przez napis %n, gdzie n oznacza numer argumentu. Wywołajmy następujące polecenie:
Plik.bat a b c d
Napis plik.bat jest nazwą pliku wsadowego, natomiast a b c d są przekazywanymi mu argumentami. Program wsadowy będzie przetwarzał napis a jako %1, b jako %2, c jako %3 i d jako %4.
Gdyby plik ten zawierał instrukcję
Echo %1
Została by ona przetworzona jako instrukcja echo a, a jej wynikiem byłoby wypisanie na ekranie słowa a. Analogicznie jeżeli plik.bat zawierałby instrukcję
Echo %4 %3 %2 %1 zostałaby ona zinterpretowana jako echo d c b a wynik taki pojawiłby się na ekranie.
Echo - wyświetla wiersz tekstu na ekranie. Jeśli włączona będzie opcja echo on, na ekranie zaczną się pojawiać wszystkie odczytywane ze skryptu polecenia, a pod nimi wyniki działania. Istnieje też opcja echo off-wtedy ukazywane są tylko wyniki działania poleceń. Ilustruje to poniższy przykład:
C:\>copy con test
Echo on
Rem pierwszy test echo on
Echo wynik pierwszego testu
Echo off
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 4
Rem drugi test ale z echo off
Echo wynik testu drugiego
C:\>test.bat { uruchamianie skryptu }
C:\>echo on
C:\>rem pierwszy test echo on
C:\>echo wynik pierwszego testu
Wynik pierwszego testu
C:\>echo off
Wynik testu drugiego
C:\>_
Zmienne
W plikach BAT można definiować zmienne, które później zostaną użyte do dowolnych celów. Zmienne w skrypcie mogą być definiowane za pomocą polecenia set, które ma następującą składnie set nazwa = wartość.
Polecenie set używane bez parametrów wyświetla bieżące ustawienia zmiennych środowiskowych.
Np.
Przypisujemy zmienne nowyj ścieżke c:\dane i wyświetlamy jej wartość
C:\>set nowy =c:\dane & echo %nowy%
c:\dane
Odwołane do zmiennych następuje przez otoczenie ich nazwy znakami %.
Opcja /A polecenia set może być zastosowana do przypisania zmiennej wyniku wyrażenia arytmetycznego np.
C:\Set z = 10
C:\Set /A z = %z% + 1 zwiększenie z o 1
Polecenia Setlocal i Endlocal są używane do ograniczenia zasięgu lokalnych zmiennych w skryptach.
Działanie Shift
Polecenie to zmienia kolejność parametrów przekazywanych do programu wsadowego.
Bez żadnych opcji polecenie przesuwa każdy argument o jedną pozycję w lewo - do początku listy argumentów - powodując, że drugiemu argumentowi wiersza poleceń odpowiada %1, trzeciemu %2 i tak dalej. Jeżeli shift użyto z opcją liczbową, przesuwane są jedynie argumenty o numerach równych lub większych od tej liczby. Tym sposobem shift /4 rozpoczyna przesuwanie argumentów od %4, pozostawiając %1 , %2 i %3 bez zmian.
Oto prosty skrypt ilustrujący te zasady:
C:\>type przesuń.bat
echo off
echo nazwa: %0
echo linia l: %1 %2 %3 %4 %5 %6 %7
shift
echo linia 2: %1 %2 %3 %4 %5 %6 %7
shift /4
echo linia 3: %1 %2 %3 %4 %5 %6 %7
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 5
echo wszystkie argumenty: %*
C:\>przesuń 1 2 3 4 5 6 7 8 9
C:\>echo off
linia l: 1 2 3 4 5 6 7
linia 2: 2 3 4 5 6 7 8
linia 3: 2 3 4 6 7 8 9
wszystkie argumenty: 1 2 3 4 5 6 7 8 9
Zmienna %* oznacza oryginalny zestaw argumentów wiersza poleceń (niezmieniony przez operację shift). %0 zawiera nazwę polecenia, pierwszy element w wierszu polecenia.
Argumenty mogą być modyfikowane przed użyciem przez umieszczenie sposobu modyfikacji pomiędzy znakiem % a numerem argumentu. Na przykład postać %~d3 oznacza literę dysku z trzeciego argumentu. Modyfikacje są zawsze określane tyldą, za którą następuje kod modyfikacji, składający się z jednej lub kilku liter.
Dostępne modyfikatory są następujące:
%~fn Pełna ścieżka.
%~dn Tylko litera dysku.
%~pn Tylko katalog.
%~nn Tylko nazwa pliku.
%~xn Tylko rozszerzenie pliku.
%~sn Używanie nazw 8.3, a nie długich nazw ścieżek
% ~$PATH:n Sprawdzanie ścieżki poszukiwań w zmiennej środowiskowej PATH i zwracanie pełnej ścieżki dla pasującego polecenia podanego jako argument n oraz zwracanie pustego ciągu znaków, jeżeli element nie zostanie znaleziony.
Call
Polecenie to wywołuje inny plik wsadowy, a następnie po jego uruchomieniu zwraca sterowania do pliku wywołującego
Call ul.cmd
Wywołuje plik ul.cmd z wnętrza innego pliku wsadowego, do którego następnie zwraca sterowanie.
Instrukcja skoku bezwarunkowego GOTO
Polecenie to służy do ustalenia kolejności wykonywania instrukcji w plikach wsadowych
GOTO etykieta
Etykieta określa wiersz w programie wsadowym, do którego powinno zostać przekazane sterowanie. Deklarując etykietę poprzedza się ją dwukropkiem, np :etykieta.
Przykład
C:\>type pszczołka.bat
echo off
echo P1
goto bratek
echo P2
:bratek
echo P3
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 6
call ul
echo P4
C:\>type ul.bat
echo ul1
goto: EOF
echo ul2
C:\>pszczołka
C:\>echo off
P1
P3
ul1
P4
5. Pętle
Język skryptów posiada wiele konstrukcji pętli FOR oto dwie, które są potrzebne do przeprowadzenia ćwiczeń:
Tradycyjna pętla indeksowana
For /L %%zmienna IN (start, skok , koniec) do polecenie
Podany parametr skryptu jest inicjowany przez wartość start, zwiększany o wartość skok za każdym wykonaniem pętli, pętla kończy działanie, gdy przekroczy limit wyznaczony przez koniec. Opcja /L - iteruje ciąg numeryczny
Pętla dla wszystkich elementów listy
for %%zmienna in (zestaw) do polecenie
parametr jest przypisywany każdemu z elementów listy kolejno.
Parametr %%zmienna może być wykorzystany do wykonania polecenia for w programie wsadowym. Parametr %zmienna może być wykorzystany do wykonania polecenia for z wiersza polecenia.
Inne konstrukcje pętli FOR możesz znaleźć w pomocy systemu Windows 2000.(Start/Pomoc/zakładka Spis treści/Odwołania/Polecenie trybu MS-DOS)
Przyład
E:\>type pętla.bat
ECHO OFF
for /L %%1 in (1,1,5) do echo %%1
rem komentarz
E:\>pętla
E:\>ECHO OFF
1
2
3
4
5
7. Instrukcje warunkowe
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 7
Polecenie służy do określenia kolejności wykonywania instrukcji w plikach wsadowych. Jeśli warunek przy instrukcji IF jest spełniony, system Windows 2000 wykona określoną komendę. Jeśli nie zignoruje ją. Składnia nie przewiduje stosowania członu THEN.
IF [not] errorlevel poziom polecenie
Testuje kod wyjściowy poprzedniego polecenia. Polecenie zakończyło się sukcesem, jeśli zwróciło kod o wartości zero. Zwrócenie wartości innej niż zero oznacza błąd podczas wykonywania polecenia. Warunek jest prawdziwy, jeśli poprzednie polecenie zwróciło kod błędu równy bądź większy od poziomu. Kod błędu ostatnio wykonywanego polecenia jest również przechowywany w zmiennej %ERRORLEVEL%
IF [not][/I] łańcuch1==łańcuch2
Sprawdza czy dwa łańcuchy są sobie równe. Jeśli zawierają spacje lub są nazwami zmiennych muszą być otoczone cudzysłowami. Jeśli porównujemy wartości parametrów, które mogą już zawierać cudzysłowy, należy otoczyć łańcuchy innymi znakami ograniczającymi np. nawiasami klamrowymi
IF [not] exist plik polecenie
Sprawdza czy istnieje określony plik. Można korzystać z pełnych ścieżek i wzorców nazw. Jeśli został określony wzorzec to warunek jest spełniony, gdy istnieje przynajmniej jeden plik pasujący do wzorca. Można także sprawdzać istnienie katalogu podając jego nazwę w argumencie plik.
IF [/I] wartość1 op wartość2 polecenie
Porównuje łańcuchy albo liczby. Dwie wartości są porównywane za pomocą operatora. Dozwolone są następujące operatory porównania:
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.
Opcja /I oznacza, że wielkość liter w porównywanych łańcuchach nie jest brana pod uwagę.
Przykład
Skrypt Logowania
Skrypty logowania mogą być przypisane do jednego lub więcej kont użytkowników lub do grupy kont . Należy przykładowy skrypt logowania umieścić we wcześniej utworzonym katalogu do którego ścieżka wygląda następująco C:\winnt\System32\Repl\Import\Scripts.
We Właściwościach użytkownika lub grupy w zakładce profil w polu skrypt logowania należy podać nazwę skryptu logowania u nas skrypt.bat
C:\WINNT\system32\Repl\Import\Scripts>type skrypt.bat
@echo off
net send %USERNAME% Witaj na %COMPUTERNAME%. Zyczymy owocnej pracy !!!!
net use G: \\Program Files
call notepad.exe
Politechnika Częstochowska Systemy Operacyjne, Studia Dzienne Katedra Inżynierii Komputerowej Windows 2000 , Ćw 4, strona 8
net send %USERNAME% Dziekuje za mile spedzony czas !!!
net use G: /D
exit
Zadania do samodzielnego wykonania
1. Przetestuj wszystkie przykładowe skrypty zawarte w ćwiczeniu .
2. Sprawdź działanie skryptu logowania na zajęciach poświęconym użytkownikom i grupom (ćwiczenie nr 6). Znając składnie poleceń napisz w punktach co robi nasz przykładowy skrypt logowania skrypt.bat
3. Napisz program kolejnosc.bat, który wypisze liczby w kolejności 5,4,3,2,1 oraz 75,50,25,0 (zastosuj instrukcję pętli for).
4. Napisz program o nazwie laboratorium.bat, który wyświetli 5 razy słowo laboratorium.
5. Napisz program, który wyświetli nazwę bieżąco zalogowanego użytkownika, literę dysku i ścieżkę na której znajduje się katalog macierzysty bieżącego użytkownika, wyświetl producenta procesora zainstalowanego w systemie.
6. Napisz program o nazwie stare.bat, który wyświetli listę wszystkich nazw plików z rozszerzeniem txt we wszystkich katalogach na dysku C, następnie znaleźć pliki mające nazwę Readme, posortować je od drugiego znaku i wynik zapisać do pliku stare.txt. Następnie wywołaj program labolatorium (z pkt.4). Wyświetl bieżącą date bez wyświetlenia monitu o nową datę i również zapisz ją do pliku stare.txt. Na końcu wyświetl napis „koniec poszukiwań“.
7. Napisz program o nazwie przypisz.bat, który pod zmienną b przypisze słowo „blok“ a pod zmienną d słowo „krok“ jeśli zmienne nie mają różnych ciągów znaków to wyświetl napis „różne ciągi znaków. Natomiast jeśli pierwszy ciąg znaków ( przypisany pod zmienną b) jest leksykalnie mniejszy niż drugi (przypisany pod zmienną d ) to wyświetl napis „pierwszy jest mniejszy“.
8. Utwórz plik plik.txt z dowolną zawartością. Następnie napisz procedurę wyszukaj.bat, która ma za zadanie znaleźć ciąg znaków z plik.txt określony jako pierwszy parametr wywołania procedury, wynik zapisz do pliku o nazwie będącej drugim parametrem wywołania procedury (np. wynik.txt).
9. Napisz procedurę sortowanie.bat, która posortuje plik podany jako pierwszy parametr wywołania procedury według drugiego znaku w każdym wierszu i wynik zapisze do pliku podanego jako drugi parametr wywołania procedury.
10. Zaproponuj własne pliki wsadowe, korzystając ze wszystkich znanych Ci poleceń i zamieść je w sprawozdani
Istnieje możliwość ustawienia wykonywania automatycznie czynności przy zamykaniu lub uruchamianiu systemu Windows. Polega to na tym, że system Windows wykonuję akcję z podanego wcześniej pliku. W tym wypadku będzie to usuwanie danego pliku lub katalogu przy zamykaniu systemu Windows.
Utwórz plik wsadowy i nazwij go usun.bat
Kliknij prawym przyciskiem myszy na nowo utworzony plik i z menu, które Ci się ukaże wybierz Edytuj.
Teraz do pliku usun.bat wpisz komendę: del /S /Q "C:\ścieżka_do_Pliku"
Zapisz plik uwzględniając zmiany
plik.bat - Notatnik |
|
Musisz jeszcze ustawić, aby plik wykonywany podczas zamykania Windows.
Kliknij na Start | Uruchom i w pole otwórz wpisz gpedit.msc.
gpedit.msc |
Teraz przejdź kolejno do: Konfiguracja komputera | Ustawienia systemu Windows | Skrypty (uruchamianie/zamykanie) i dwukrotnie kliknij na Zamknięcie.
W nowym oknie, które Ci się pokaże wskaż ścieżkę do utworzonego wcześniej pliku usun.bat.
zrobić plik wsadowy .bat który będzie tworzył folder w nim drugi a w tym drugim plik tekstowy
Automatyczny backup katalogów z plikiem wsadowym
del G:\Backup\DaneAplikacjiStare.7z
copy G:\Backup\DaneAplikacji.7z G:\Backup\DaneAplikacjiStare.7z
del G:\Backup\DaneAplikacji.7z
cd "C:\Documents and Settings\Uzytkownik\Dane aplikacji\"
C:\Program Files\7-zip\7z.exe a -phaslo -y -t7z "G:\Backup\DaneAplikacji.7z" "*" -r -xr!"Microsoft\" -xr!"Identities\" -mx8