Pliki wsadowe/MS-DOS

Z Wikibooks, biblioteki wolnych podręczników.

Pliki wsadowe można stosować także w systemie MS-DOS.

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[edytuj]

Najważ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[edytuj]

Niżej zobaczymy przykłady z rozdziału Windows "przetłumaczone" na MS-DOS.

Uruchomienie strony[edytuj]

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[edytuj]

To 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).