Pliki wsadowe/Windows: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
UWAGA! Zastąpienie treści hasła bardzo krótkim tekstem: „nie ma”
Znaczniki: Zastąpiono blanking
Linia 1:
nie ma
W systemach Windows można stosować takie pliki do tworzenia prostych programów. Ponieważ działają one głównie w trybie tekstowym do ich tworzenia wymagana jest znajomość komend [[MS-DOS]], które nie zostaną tutaj opisane.
 
 
Zaczynamy od standardowego Hello World:
<source lang="dos">
@echo off
echo Hello World
pause
</source>
I uruchamiamy program dwuklikiem. Wyświetli on napis ''Hello World'' i poprosi o naciśnięcie dowolnego klawisza. Opis komend:
*<code>@echo off</code> - wyłączenie wyświetlania komend na ekranie.
*<code>echo</code> - wyświetlenie tekstu. Jako argumenty podajemy tekst do wyświetlenia.
*<code>pause</code> - oczekiwanie na naciśnięcie dowolnego klawisza.
Ze znajomością tych kilku komend możesz już pisać programy służące do robienia powtarzających się czynności, np. kopiowania plików a następnie przetwarzania ich. Jednak taki program nie jest '''interakcyjny''', czyli nie pozostawia wyboru użytkownikowi co do jego działania.
 
== Przyjmowanie danych ==
 
jebac
 
=== Jako argumenty ===
Argumenty to dane przyjmowane w momencie uruchamiania. Możemy je wpisywać przez konsolę lub w oknie ''Właściwości''. Są one oznaczane jako %1, %2, itd. Jeżeli uruchamiamy coś w jakimś programie, to zostanie mu to podane jako pierwszy argument i możemy to wykorzystać. Dla przykładu, oto program "cicho" usuwający uruchamiany plik:
<source lang="dos">
@echo off
if exist %1 del %1
</source>
 
Linijka <tt>if exist %1 del %1</tt> oznacza ''jeżeli istnieje %1 usuń %1'' (zachowano oryginalną składnię). Jeżeli program zostanie uruchomiony bez argumentu nic się nie stanie. Więcej o instrukcjach warunkowych dowiesz się w następnym dziale.
 
== Instrukcje warunkowe i interakcja ze środowiskiem ==
Napiszemy sobie teraz program z listą stron internetowych. Po wpisaniu numeru którejś zostanie uruchomiona przeglądarka internetowa z tą stroną. Kod:
<source lang="dos">
@echo off
echo POLECANE STRONY INTERNETOWE
echo [1] - Wikibooks
echo [2] - Wikipedia
echo [3] - Pliki wsadowe w Wikibooks
echo [4] - Pliki wsadowe w Wikipedii
set /p odp=Podaj numer strony do uruchomienia?
if %odp%=="1" start "iexplore.exe http://pl.wikibooks.org"
if %odp%=="2" start "iexplore.exe http://pl.wikipedia.org"
if %odp%=="3" start "iexplore.exe http://pl.wikibooks.org/Pliki_wsadowe"
if %odp%=="4" start "iexplore.exe http://pl.wikibooks.org/Program_wsadowy"
if not %odp%=="1" exit
if not %odp%=="2" exit
if not %odp%=="3" exit
if not %odp%=="4" exit
</source>
Oczywiście możesz (no dobra, powinieneś) zmienić iexplore.exe na ścieżkę do własnej przeglądarki internetowej. Komendy:
* <code>if [not] [exist] cos==cos komenda</code> - jeżeli coś równa się czemuś wykonaj komendę. Jeżeli użyte jest <tt>not</tt>, stanie się przeciwieństwo - jeżeli coś '''nie''' równa się czemuś wykonaj komendę. Jeżeli użyte jest <tt>exist</tt>, zamiast zwykłego sprawdzenia warunku sprawdzane jest istnienie danego pliku (w przykładzie w poprzednim rozdziale).
* <code>start</code> - wykonanie jakiegoś programu w osobnym oknie.
* <code>call</code> - odmiana komendy start służąca do uruchomienia jakiegoś pliku wsadowego w tym samym oknie. Może służyć do podzielenia skomplikowanego programu na mniejsze części (tutaj niewykorzystana)u do etykiety wyjscieprogramsiękończy, jeżeli <code>t</code> program wraca do początku i ponownie wyświetla polecane strony.
 
==Komentarze==
Jeżeli chcemy opisać dany fragment programu, musimy skorzystać z komendy REM lub znaku ::,
czyli np:
<source lang="dos">
@echo off
REM pojawi się komunikat
echo Hello World
:: wstrzymanie pracy programu
pause
</source>
 
==Zapisywanie danych do pliku==
Zapisywanie danych do pliku tekstowego odbywa się za pomocą symbolu > lub >> .
Oto dwa przypadki
 
W przypadku pierwszym komenda set /a przyporządkowała zmiennej m cyfrę 2 a symbol >> dopisał zmienną do pliku zm.txt lub utworzył nowy gdyby nie było zm.txt.
 
W przypadku drugim symbol > kasował dane z pliku zm.txt i zapisał nowe lub utworzył nowy gdyby nie było zm.txt
 
Gdy skorzystamy z tego ułatwienia, możemy zapisać pause >nul tzn. nie będziemy widzieć "Aby kontynuować, naci˜nij dowolny klawisz . . . " na ekranie konsoli.
 
 
== Zakończenie ==
Teraz już potrafisz pisać proste programiki dla systemów Windows. Jeżeli zabrakło Ci jakiejś funkcji, napisz w [[Dyskusja:Pliki wsadowe|dyskusji]].
 
Wszystkie kody źródłowe wykorzystane w tym module dostępne są na licencji [[Wikipedysta:Przemub/MIT|MIT (Expat)]].