Pliki wsadowe/MS-DOS
Pliki wsadowe można stosować także w systemie MS-DOS.
Uwaga!
|
Zgodnie z tym co przeczytałeś w notce wyżej, ten moduł służy do wyjaśnienia różnic między pisaniem plików wsadowych dla najnowszych Windows a dla MS-DOS i Windows 9x (opartych o MS-DOS).
Przyjmowanie danych
edytujNajważniejszą różnicą jest brak funkcji set /p, której zamiennikiem jest funkcja choice
nieistniejąca z kolei w Windows XP i nowszych. Ta funkcja różni się składnią, możliwościami oraz sposobem zwracania danych - do set /p można wpisać cokolwiek a wejście zwracane jest do wybranej zmiennej środowiskowej, a w choice możemy tylko dokonać wyboru z wcześniej wybranych opcji, a wybrana opcja jest zwracana jako kod wyjścia do zmiennej ERRORLEVEL, której zawartością jest numer wybranej opcji od jeden w górę.
W praktyce:
@echo off
choice /C:123 Podaj cyfrę%1
if ERRORLEVEL==1 goto jeden
if ERRORLEVEL==2 goto dwa
if ERRORLEVEL==3 goto trzy
goto koniec
:jeden
echo Wcisnąłeś jeden.
goto koniec
:dwa
echo Wcisnąłeś dwa.
goto koniec
:trzy
echo Wcisnąłeś trzy.
:koniec
Funkcję choice tworzymy choice /C:opcje Zachęta%1 gdzie opcje to dostępne opcje (wyżej 1, 2 i 3 podawane jako 123), a %1 kończy zachętę i zamieniane jest na (opcja, opcja, opcja, ...)?, w tym wypadku na (1, 2, 3)?. Jeżeli nie chcemy tej zamiany, to dodajemy argument /N, wtedy %1 nie zmieni się na nic, ale nadal jest potrzebne.
Przykłady
edytujNiżej zobaczymy przykłady z rozdziału Windows "przetłumaczone" na MS-DOS.
Uruchomienie strony
edytujUwaga!
|
Graficznie
edytuj@echo off
echo POLECANE STRONY INTERNETOWE
:tekst
echo [1] - Wikibooks
echo [2] - Wikipedia
echo [3] - Pliki wsadowe w Wikibooks
echo [4] - Pliki wsadowe w Wikipedii
:zapytanie
choice /N /C:1234qt Podaj numer strony (q aby wyjść, t aby powtórzyć strony)?
if ERRORLEVEL==5 goto wyjscie
if ERRORLEVEL==4 goto tekst
if ERRORLEVEL=="1" start "iexplore.exe http://pl.wikibooks.org"
if ERRORLEVEL=="2" start "iexplore.exe http://pl.wikipedia.org"
if ERRORLEVEL=="3" start "iexplore.exe http://pl.wikibooks.org/Pliki_wsadowe"
if ERRORLEVEL=="4" start "iexplore.exe http://pl.wikipedia.org/Program_wsadowy"
goto zapytanie
:wyjscie
Tekstowo
edytuj@echo off
echo POLECANE STRONY INTERNETOWE
:tekst
echo [1] - Wikibooks
echo [2] - Wikipedia
echo [3] - Pliki wsadowe w Wikibooks
echo [4] - Pliki wsadowe w Wikipedii
:zapytanie
choice /N /C:1234qt Podaj numer strony (q aby wyjść, t aby powtórzyć strony)?
if ERRORLEVEL==5 goto wyjscie
if ERRORLEVEL==4 goto tekst
if ERRORLEVEL=="1" start "lynx\lynx.exe http://pl.wikibooks.org"
if ERRORLEVEL=="2" start "lynx\lynx.exe http://pl.wikipedia.org"
if ERRORLEVEL=="3" start "lynx\lynx.exe http://pl.wikibooks.org/Pliki_wsadowe"
if ERRORLEVEL=="4" start "lynx\lynx.exe http://pl.wikipedia.org/Program_wsadowy"
goto zapytanie
:wyjscie
Zakończenie
edytujTo by było na tyle co do różnic - pamiętaj jeszcze tylko, że przy uruchamianiu programów zewnętrznych niedopuszczalne jest omijanie start. Jeżeli znalazłeś jakieś błędy, pisz w dyskusji.
Wszystkie kody źródłowe wykorzystane w tym module dostępne są na licencji MIT (Expat).