Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 2 gości

Podstawy BATCH - plików wsadowych

#1
  Podstawy BATCH - plików wsadowych
Witam.

Poradnik na pewno nie jednemu się przydaOczko

Wiele z was ma pewno chęć napisać jakiś prosty programik w Batchu. Np. Kalkulator, Notatnik itp. Pokażę Ci od podstaw, jak takie coś zrobić.

Zaczynamy!

1. Przygotowania

Aby rozpocząć zabawę z Bat musimy posiadać edytor tekstu (zalecany Notepad++), system operacyjny Windows i jak w każdej robocie - Chęć.
N++ pobierzesz z tąd

2. Podstawy i wyjaśnienia komend

Język Bat jest bardzo ograniczony. Posiada jednak wystarczająco komend jak dla początkującego. Wypiszę najpopularniejsze z nich:

---------------------------------------------------------------------------------

Atecho [off/on] - Odpowiada za wyświetlanie komend w wierszu poleceń,
Atchcp [strona kodowa] - Ustawia stronę kodową w pliku wsadowym,
echo [tekst] - Wyświetla tekst,
echo. - Wyświetla pustą linię,
title - Tytuł okna wiersza poleceń,
cls - Wyczyszczenie wiersza poleceń,
set [argumenty] - Ustawia zmienną (np. %zmienna1% na Tekst),
if [argumenty] - Dokonuje warunkowego przetwarzania w wierszu poleceń,
start [ścieżka docelowa pliku] - Uruchamia program zewnętrzny,
pause - Zatrzymuje np zamknięcie programu napisem: Aby kontynuować, naciśnij(...)
goto [argumenty] - Odsyła do oznaczonej nazwą części pliku wsadowego,
>nul - Ukrywa informację zwrotną od danego polecenia,
type [argumenty] - Wyświetla zawartość dokumentu,
del - Usuwa pliki,
xdel - Usuwa foldery i pliki,
copy - Kopiuje pliki,
xcopy - Kopiuje foldery i pliki,
dir - Wyświetla listę plików i katalogów wskazanego folderu/dysku,
md - Tworzy katalog,
mkdir - Tworzy katalog,
ping - Odpytuje określonego hosta, czy posiadam z nim połączenie,
call - Wywołuje jeden plik wsadowy w drugim,
exit - Zakończenie działania pliku wsadowego.

---------------------------------------------------------------------------------

Więcej komend i ich znaczenia znajdziecie w CMD pod komendą help, a następnie [komenda] /?

3. Tworzymy pierwsze Hello World!

Zacznijmy od utworzenie pliku wsadowego. W tym celu otwieramy notatnik i pusty zapisujemy jako plik wsadowy
(z dopiskiem na końcu .bat a typ pliku jako Wszystkie pliki).

[Obrazek: k4ug7t.png]

Następnie na utworzony plik naciskamy PPM i z otwartego Menu wybieramy Edit witch Notepad++.

Następnie wklejamy do niego:

Kod:
@echo off
title Hello World!
@chcp 852
cls
echo.
echo Hello World!
echo.
pause
exit

Teraz w N++ z górnego Menu wybieramy:
Format -> Zestaw znaków -> Środkowoeuropejskie -> OEM 852

[Obrazek: wjigso.png]

Zapisujemy kombinacją klawiszy CTRL + S.

Uruchamiamy plik i patrzymy jaki efekt:

[Obrazek: 9fqmtj.png]

Po naciśnięciu jakiegokolwiek klawisza okno się zamknie.

Teraz czas na objaśnienie kodu programu:
Linijka 1.

Atecho off - Tą poleceniem ukryliśmy wpisywane przez nas komendy. Jeżeli jesteś ciekaw, jak by to wyglądało z Atecho on zamień OFF na ON i zapisz!

Linijka 2.

title - Ustawiliśmy tytuł naszego programu wsadowego.

Linijka 3.

Atchcp 852 - Ustawiliśmy stronę kodową programu na OEM 852 (obsługa polskich znaków)

Linijka 4.

cls - Wyczyściliśmy okno programu ze zbędnych informacji. Bez tego napisane zostałoby na górze: "Aktywna strona kodowa: 852"

Linijka 5.

echo. - Wstawiliśmy pustą linię.

Linijka 6.

echo Hello World! - Wstawiliśmy tekst: "Hello World!"

Linijka 7.

echo. - Wstawiliśmy pustą linię.

Linijka 8.

pause - Zatrzymaliśmy program przed natychmiastowym zamknięciem. Odpowiada za napis: "Aby kontynuować, naciśnij dowolny klawisz..."

Linijka 9.

exit - Zamknięcie okna i wyłączenie naszego pliku wsadowego.

4. Udoskonalamy program

Jeżeli już znamy podstawy i pojęcia, czas na udoskonalenie programu. Będziemy dodawać między innymi: Interakcję z użytkownikiem, informacje o dacie i godzinie, będziemy tworzyć inne części pliku wsadowego (goto), ustawiać zmienne (set) itp.


Modyfikujemy nasz kod do takiego stanu:

Kod:
@echo off
title Hello World!
@chcp 852
set nazwaprogramu="Prosty program napisany w języku Batch"
:menu
cls
echo.
echo Witaj drogi użytkowniku! Przedstaw się, będzie nam łatwiej się komunikować.
echo.
echo Wpisz swoje imie:
set /p imie=">> "
echo O! Witaj %imie% !
ping 1.1.1.1 -n 1 -w 705 > nul
echo Ja jestem %nazwaprogramu%.
ping 1.1.1.1 -n 1 -w 705 > nul
echo Z tego, co się dowiaduję, jest godzina %time%
echo A dziś jest %date%
ping 1.1.1.1 -n 1 -w 705 > nul
echo Zgadza się?
set /p odp=">>"
if /I %odp% equ tak goto tak
if /I %odp% equ nie goto nie
goto help
:tak
cls
echo.
echo Wiedziałem! Przecież zawsze mam rację, co nie?
echo Jeszcze raz się pochwalę :D
echo Godzina: %time%, a data: %date%
ping 1.1.1.1 -n 1 -w 1005 > nul
echo.
echo Śpieszę się.. Muszę zakończyć działanie.
echo.
echo Do zobaczenia!
echo.
timeout /t 10>nul
exit
:nie
cls
echo.
echo Nie kłam! Przecież zawsze mam rację! Nie zmylisz mnie z tropu!
echo.
echo Chyba, że na prawdę się mylę??
echo.
echo.
echo Nie mam czasu, żeby to sprawdzić.
echo Muszę zakończyć działanie.
echo.
echo Do zobaczenia!
timeout /t 10>nul
exit
:help
cls
echo.
echo Chyba się coś pomyliłeś.. Miałeś mi odpowiedzieć tak lub nie.
ping 1.1.1.1 -n 1 -w 3005 > nul
echo.
goto menu


Po kolei, wyjaśnię to, co jeszcze nie zostało wyjaśnione:

set nazwaprogramu=Prosty program napisany w języku Batch - Przypisanie zmiennej %nazwaprogramu% tekst: Prosty program napisany w języku Batch. W znakach %% wstawia się nazwę zmiennej, która zostaje interpretowana w innych poleceniach np. echo

set /p imie=">> " - Interakcja z użytkownikiem. Użytkownik nadaje właściwość zmiennej %imie%.

ping 1.1.1.1 -n 1 -w 705 > nul - Odpytuje host 1.1.1.1 przez 705ms. Jest to taki okres oczekiwania między pojawieniem się jednej linijki kodu w pliku wsadowym. Aby odczuć efekt, usuń ping w kodzie i zobacz co się stanie.

echo Ja jestem %nazwaprogramu%. - Echo nie będę objaśniał. W znakach %% umieszczono nazwę zmiennej nazwaprogramu, która została nadana na samym początku kodu. Dzięki tej interpretacji nadany tekst tej zmiennej zostanie wyświetlony w oknie programu.

echo Z tego, co się dowiaduję, jest godzina %time%,
echo A dziś jest %date% - Zmienne %time% i %date%. Są to systemowo ustawione zmienne, które pokazują aktualną datę i aktualny czas z komputera.

set /p odp=">> ",
if /I %odp% equ tak goto tak,
if /I %odp% equ nie goto nie
- Pojawia się tutaj if tj. warunkowe przetwarzanie w plikach wsadowych. W kilku podpunktach objaśnię jego strategię działania:
a) if /I (reszta kodu) - Przy wpisaniu w set /p odp=">> " wyrażenia nie będą uwzględniane przy jego przetwarzaniu wielkości liter.
b)if /I %odp% equ tak/nie goto tak/nie - Jeżeli zmienna %odp% jest równa tak/nie, to przejdź do części kodu oznaczonej tak/nie. EQU oznacza sprawdzenie, czy zmienna %odp% jest równa informacji w set /p odp=">> " Jeżeli są równe, to goto przechodzi do części kodu nazwanej tak/nie.

:menu
:tak
:nie
:help
- Nazwy części kodu. Zwróć uwagę na komendy goto. Na ich końcu są zwykle nazwy: menu, tak, nie, help. Oznacza to, że goto przekierowuje do części tego kodu nazwanej menu/tak/nie/help.

timeout /t 10>nul - Czas, po którym ma nastąpić dana czynność. po użyciu tej komendy, po 10 sekundach zostanie dopiero przetworzona następna część kodu. Jest bardziej ograniczony od PING. Odmierza czas w sekundach, a PING w milisekundach.

5. Podsumowanie

Z tego artykułu zapewne dowiedziałeś się namiastkę informacji związanych z programowaniem w Batch. Nauczyłeś się kilku podstaw, potrafisz napisać własny malutki prosty programik i wiele innych rzeczy, które samodzielnie wyniosłeś z tej nauki. Jak pisałem, jest to tylko namiastka całej wiedzy o tym języku. Wiele przydatnych komend i ich tłumaczenia znajdziesz w najzwyklejszym CMD pod komendą HELP, a następnie nazwa jakiejś komendy i na końcu dopisujemy /?. Na przykład: BCDEDIT /?

6. Praca domowa

Wykonaj plik wsadowy, który będzie otwierał program NOTEPAD.exe, którego ścieżka docelowa to: %SYSTEMROOT%\System32\notepad.exe
UWAGA! Następna zmienna %SYSTEMROOT%. Odpowiada ona za katalog X:\Windows\
(gdzie X literka dysku z systemem)

Dziękuję i pozdrawiam.

AtSPEED EDIT

Kolejne części poradnika będą wstawiane co miesiąc! Zapraszam ponownie 8 Grudnia !
 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
batch komendybatch podstawywszystkie komendy jezyka batchKomendy batchkomendy do batprogram wsadowy do otwierania katalogówkomendy bathkomedy batchbatch otwieranie strony internetoweprogramowanie w batch

Podobne wątki (Podstawy BATCH - plików wsadowych)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  wczytywanie zmiennej z innego pliku batch grymariusza 7 8403 18.12.2017, 17:34
Ostatni post: broda99
  Batch - odczytywanie temperatury karty graficznej i zapisywanie jej do zmiennej ~Anonim 4 7563 03.09.2017, 21:41
Ostatni post: ~Anonim
  Podwojne menu wyboru w batch files kulis88 3 7112 12.08.2017, 23:41
Ostatni post: broda99

Skocz do: