T: Przetwarzanie wsadowe autoexec.bat.
Przetwarzanie wsadowe polega na odczytywaniu poleceń przez system z pliku zawierającego te polecenia. Plik ten nazywany jest plikiem wsadowym i jego nazwa musi mieć rozszerzenie .bat. Podczas uruchamiania systemu operacyjnego DOS przetwarzany jest plik autoexec.bat znajdujący się w katalogu głównym systemu operacyjnego. Jest to zwykły plik tekstowy zapisany w kodach ASCII. Uruchamia programy potrzebne do pracy systemu. Może zawierać polecenia DOS-owe.
Odpowiednikiem pliku autoexec.bat w systemie Windows XP jest plik c:\windows\system32\autoexec.nt.
Zadanie1:
Utwórz na pulpicie skrót do programu edit.com. Następnie wywołaj Właściwości tego skrótu i na zakładce Program kliknij przycisk Zaawansowane. Jaką masz tam konfigurację? Następnie zapoznaj się z zawartością pliku autoexec.nt.
Pliki wsadowe mogą też pełnić rolę plików skryptowych. W systemach Windows mogą mieć rozszerzenia .bat i .cmd. W przypadku rozszerzenia .bat uruchamiane są ze starszym interpreterem poleceń command.com a w przypadku rozszerzenia .cmd z interpreterem cmd.exe.
Polecenia stosowane w plikach wsadowych:
ECHO OFF - wyłącza wyświetlanie na ekranie instrukcji o wykonywanych poleceniach.
@echo off - nie wyświetla bieżącej linii z poleceniem.
ECHO ON - wyświetlanie na ekranie instrukcji o wykonywanych poleceniach.
ECHO [komunikat] - wyświetlenie na ekranie podanego komunikatu. Przykłady:
echo on
echo Konfiguracja klawiatury
@echo off
REM [komentarz] - komentarz jest ignorowany przez system operacyjny, jest to informacja dla użytkownika. Przykład:
PAUSE - zawieszenie działania pliku do naciśnięcia dowolnego klawisza.
PATH - uaktywnia podany katalog w przypadku poszukiwania pliku. Ogólna składnia polecenia i przykłady:
PATH [ [ dysk:] ścieżka [; [dysk:] ścieżka] ... ] [;%path%]
path c:;c:\dos;c:\edytory
path=%path%;c:\windows\system32
path #wyświetla aktualne ustalenia,
path; #usuwa wcześniejsze ustalenia.
CON: - oznacza urządzenie wejścia = klawiatura, wyjścia = monitor.
PRN: - oznacza urządzenie wyjścia, drukarkę.
NUL: - oznacza urządzenie testujące nie istniejące w rzeczywistości.
LOADHIGH lub LH - polecenie ładuje ewentualny sterownik do wyższych obszarów pamięci (UMA) dzięki czemu zwalnia się miejsce w pamięci podstawowej. Ładuje programy w obszary górnej pamięci gdy jest poprzedzone załadowaniem programu EMM386.EXE. Przykład:
MODE - konfigurowanie urządzeń zewnętrznych (lpt1, lpt2, com1, com2, com3, com4, klawiatura, monitor), składania polecenia i przykłady:
MODE [urządzenie] [/status]
mode lpt1
MODE LPTn[:]=COMm[:] #przełącza dane przesyłane do drukarki na łącze szeregowe, zamiast na łącze równoległe,
MODE CON CP PREPARE=((yyy[...]) [d:][ścieżka]plik) #przygotowanie strony kodowej,
MODE CON CP SELECT=yyy #wybranie przygotowanej już strony kodowej,
MODE CON CP REFRESH #przywraca stronę utraconą,
MODE CON CP [/STATUS] #pokazuje przygotowane strony kodowe,
MODE CON[:] [LINES=n] [COLS=c] [RATE=r] [DELAY=d] #zarządza konsolą (zestawem klawiatura-monitor),
MODE CON[:] [RATE=r DELAY=d] #steruje tylko klawiaturą (powtarzalność znaków),
MODE CON CP PREP=((852) C:\DOS\EGA.CPI) #dostępność polskich znaków na ekranie monitora.
KEYB - załadowanie sterownika i ustawienie układu klawiatury. Składnia polecenia i przykłady:
keyb kod_kraju,strona_kodowa_klawiatury,sterownik
KEYB [xx [,yyy],[d:][Scieżka][plik]] [/e] [id:identyfikator] #xx - oznaczenie klawiatury (PL - Polska), yyy - numer strony kodowej (437, 850, 852, 863 lub 865), /e - klawiatura rozszerzona, /id - gdy różne wersje klawiatury.
KEYB PL,852,C:\DOS\KEYBRD4.SYS
PROMPT - umożliwia modyfikację znaku zachęty systemu operacyjnego DOS. Przykłady:
prompt $p$g #domyślny znak zachęty c:\>
prompt #usuwa dotychczasowy znak zachęty,
PROMPT $E[1;37;44M #czcionka pogrubiona na niebieskim tle
PROMPT $E[0;61;"DIR";13P #F3 jako polecenie dir
Symbole używane w znaku instrukcji prompt:
Symbol
|
Znaczenie
|
E
P
G
N
D
T
V
L
B
Q
H
$
_
|
kod klawisza ESC
aktualny napęd dyskowy
znak >
litera aktualnego napędu
aktualna data
aktualny czas
wersja systemu operacyjnego
znak <
znak |
znak =
kod klawisza [Bksp]
znak $
następna ścieżka
|
DOSKEY - zapamiętuje polecenia, przechodzenie strzałkami kursora (góra, dół).
SMARTDRV - program sterujący pamięcią cache dysku (podręczna dysku, buforowanie danych). Program powinien być ładowany po mscdex i keyb. Pierwszy
parametr polecenia przydziela bajty pamięci dla DOS, drugi dla WINDOWS, przykłady:
C:\dos\smartdrv.exe 2048 1048
LH /L:0;1,45456 /S C:\dos\smartdrv.exe 1024 512
SHARE - program wymagany przez wiele programów w Windows, zajmujący się współdzieleniem plików, np. przed jednoczesnym otwieraniem pliku w kilku aplikacjach. Przykłady:
C:\DOS\SHARE.EXE /L:500 /F:5100
MSCDEX - sterownik stacji CD-ROM, przykłady:
C:\DOS\MSCDEX.EXE /D:SONY-000 /V /M:12
LH C:\CDROM\MSCDEX /D:MSCD000
CALL wywołanie pliku wsadowego z innego pliku wsadowego. Składnia polecenia:
call [d:][path]filename.bat [parametry]
SET - przyporządkowanie łańcucha znaków w środowisku systemu równoważnego łańcucha, dla późniejszego wykonywania przez programy. Polecenie służy do definiowania zmiennych środowiskowych systemu operacyjnego. Składnia polecenia i przykłady:
SET [string = [string]]
set temp=c:\tmp
set tmp=c:\tmp
Zadanie2:
Zapoznaj się z zawartością witryny http://support.microsoft.com/kb/305521/pl?spid=3198&sid=global.
Przykładowy plik autoexec.bat:
@echo off
prompt $p$g
path c:\; c:\dos\; c:\norton\
set temp=d:\temp
c:\mouse\gmouse
gdzie:
@echo off - wyłączanie wyświetlania na ekranie informacji o wykonywanych poleceniach,
prompt $p$g - deklaracja znaku zachęty,
path c:\; c:\dos\; c:\norton\ - deklaracja ścieżek dostępu do różnych programów,
set temp=d:\temp - deklaracja do przechowywania zbiorów tymczasowych,(RAMDISK)
c:\mouse\gmouse - uruchomienie sterownika myszy.
Zadanie3:
Utwórz plik wsadowy realizujący następujące zadania:
- poinformuje użytkownika o tym, że jest to plik wsadowy,
- zdefiniuje zmienna imie o wartości twojego imienia,
- utworzy w systemie plik o nazwie imie.txt i zawartości twojego imienia,
- dopisze w pliku imie.txt informacje o konfiguracji numeru IP karty sieciowej,
- będzie wyświetlał w nieskończoność zmienna imie na ekranie monitora.
Inna wersja pliku autoexec.bat:
@echo off
format a:
md a:\doc
copy c:\*.* a:\doc
dir/w a:\doc
dir a:\doc>prn:
pause
cls
echo Plik wsadowy przeze mnie zdefiniowany
echo jest poprawny i to mnie cieszy.
pause
rem oby była tu gra c:\windows\sol.exe
C:\windows\sol.exe
Inna wersja pliku autoexec.bat:
Echo off
C:\dos\smartdrv.exe 1024
Prompt $Lkamil$G$P$G
Path c:\;c:\dos;c:\nc;c:\windows
Rem Wyżej podano przykładowe ścieżki dostępu do poleceń
Rem Dos, oraz programów NC i Windows.
C:\dos\mode con cp prep=((852)c:\dos\ega.cpi)
C:\dos\mode con cp select=852
Loadhigh c:\dos\keyb pl
C:\dos\smartdrv.exe 1024 /x
rem parametr x powoduje sprawdzanie (testowanie) pamięci
Wykorzystanie zmiennych w pliku wsadowym:
@echo off
cls
set imie=Darek
set nazwisko=Kowalski
echo Czesc %imie% %nazwisko%. Witaj na kursie D3
pause
Wykorzystanie zmiennych systemowych:
@echo off
cls
echo Komputer: %COMPUTERNAME%
echo Uzytkownik: %USERNAME%
echo Domena NETBIOS: %USERDOMAIN%
echo Domena internetowa: %USERDNSDOMAIN%
echo Serwer logowania: %LOGONSERVER%
pause
Plik wsadowy ze zmiennymi i instrukcjami warunkowymi:
@echo off
cls
set Imie1=Jarek
set imie2=DAREK
set IMIE3=Marek
if NOT %imie1%==%imie2% echo To jest prawda pierwsza, ze %Imie1% nie jest rowne %imie2%
if %imie1%==%imie3% echo To jest prawda druga , ze %Imie1% = %imie3%
if /i %imie2%==%imie3% echo To jest prawda trzecia , ze %Imie2% = %imie3% gdy nie biore pod uwage wielkosci znakow
pause
Plik wsadowy ilustrujący wykorzystanie instrukcji skoku:
@echo off
cls
set nazwa_uzytkownika="Jan Kowalski"
IF /i %nazwa_uzytkownika%=="jan kowalski" GOTO etykieta1
rem /i => wielkość liter nie ma znaczenia
IF /i %nazwa_uzytkownika%=="marysia" GOTO etykieta2
GOTO etykieta3
:etykieta1
echo Zadania dla dyrektora: Oglosic dzien sportu
GOTO etykieta_koniec
:etykieta2
echo Zadanie dla nauczyciela WF: Przygotowac boisko na dzien sportu
GOTO etykieta_koniec
:etykieta3
echo Zadanie dla uczniow: Bawic sie dobrze w dniu sportu
GOTO etykieta_koniec
:etykieta_koniec
pause
Plik wsadowy przydatny w wykorzystaniu z Turbo Pascalem (do uruchamiania programu TP):
@echo off
set savepath=%path%
set path=%path%;c:\tp\bin
c:\tp\bin\tpx %1 %2 %3 %4
set path=%savepath%
Plik wsadowy autoexec.nt dla systemu Windows XP:
@echo off
lh %SYSTEMROOT%\system32\mscdexnt.exe
lh %SYSTEMROOT%\system32\redir
lh %SYSTEMROOT%\system32\dosx
SET BLASTER=A220 I5 D1 P330 T3
Plik autoexec.nt możemy odzyskać z płyty instalacyjnej Windows XP wykorzystując konsolę odzyskiwania, w której należy wydać następujące polecenie:
expand X:\i386\>autoexec.nt_ C:\WINDOWS\system32\autoexec.nt