Plik wsadowy, plik bat, batch file
Plik:Endlosschleife durch Batchdatei (Windows 8.1).webp
Rozszerzenia pliku

.bat, .cmd, .btm

Producent

Microsoft

Typ

język skryptowy

Plik wsadowy, plik bat (ang. batch file) – rodzaj skryptów głównie w systemach DOS i Windows, zapisywane jako pliki z rozszerzeniem „.bat” oraz „.cmd”. Pliki te wykonywane są poprzez odpowiedni interpreter poleceń – początkowo przez command.com, a od Windows NT przez cmd.exe.

Skrypty i tryb wsadowy

edytuj
Osobny artykuł: Tryb wsadowy.

Program komputerowy wykonywany w trybie wsadowym to program wykonywany bez wpływu użytkownika na przebieg programu (bez interakcji). Pliki wsadowe w systemach Microsoftu, chociaż mogą zostać wykonane w trybie wsadowym, to sam język umożliwia uruchamianie programów, które umożliwiają interakcję z użytkownikiem[1].

Zastosowanie i ograniczenia

edytuj

Pliki wsadowe nie wymagają interfejsu graficznego i są uruchamiane w trybie tekstowym, albo z wiersza poleceń trybu graficznego. W systemie Windows mogą być także uruchamiane z wiersza poleceń zredukowanego do okna Uruchom w menu Start lub eksploratora Windows przez uruchomienie pliku.

Wynik działania programu wsadowego może być zapisany do pliku, wyprowadzony (wyświetlony) na ekran, może być wprowadzony jako zmiana w rejestrze systemu Windows lub przekazany do innego programu przy przetwarzaniu potokowym. Pliki wsadowe mogą ułatwiać zautomatyzowanie niektórych zadań. Takimi zadaniami jest np. wykonywanie powtarzających się zadań administratora systemu, czy wykonywanie zadań w harmonogramie zadań(inne języki)[2].

Interpreter cmd.exe (który jest odpowiedzialny za wykonywanie skryptów .BAT) otwiera plik ze skryptem, odczytuje, zapamiętuje pozycję, zamyka plik i wykonuje polecenie. Tak może się dziać nawet dla każdej kolejnej linii skryptu (z wyjątkiem wyrażeń w nawiasach) i może to powodować dziwne efekty, jeśli plik wsadowy zmieni się w trakcie wykonywania poleceń. Takie zachowanie jest również nieefektywne, jeśli dostęp do dysku ze skryptem jest wąskim gardłem[3][4][5].

Przykłady

edytuj

Przykładowe polecenia plików wsadowych

edytuj

Przykładowe komendy wsadowe, będące poleceniami powłoki systemowej systemu MS-DOS i Microsoft Windows:

  • ECHO – wyświetlanie tekstu na ekranie,
  • SET – tworzenie zmiennej bądź modyfikacja istniejącej,
  • CLS – wyczyszczenie okna konsoli,
  • COPY – kopiowanie pliku,
  • DEL – usuwanie pliku,
  • RMDIR – usuwanie katalogu,
  • MKDIR – tworzenie katalogu,
  • DIR – wyświetlanie listy plików i katalogów,
  • TYPE – wyświetlanie zawartości pliku,
  • REM – dodanie jednowierszowego komentarza.

Na stronie internetowej Microsoftu można znaleźć dokumentację wszystkich poleceń w systemach Windows Server[6].

Przykładowe pliki wsadowe

edytuj

Przykładowy program wsadowy systemu MS-DOS lub Windows, w tym przykładzie wyświetlający napis „Hello World”, wygląda następująco:

@echo off
echo Hello World
pause

Przykładowy skrypt proszący o podanie imienia i wypisujący stosowny komunikat wraz z komentarzem:

@echo off
set /p imie=Jak masz na imię?
rem To jest komentarz i nie ma wpływu na działanie programu
echo Witaj, %imie%.
pause

i wynik jego działania:

Jak masz na imię? Michał
Witaj, Michał.
Aby kontynuować, naciśnij dowolny klawisz . . .

Przykład ten demonstruje możliwość pobierania danych od użytkownika nie tylko poprzez parametry, ale także w czasie trwania wykonywania skryptu. Możliwość taka istnieje w Windows NT. Przykładowy skrypt tworzący folder o nazwie „test”, a następnie usuwający go.

@echo off
mkdir test
rmdir test
exit

Implementacje

edytuj

Interpreterem komend (powłoką systemową) w systemach MS-DOS i Windows z rodziny 9x jest program command.com[3]. W późniejszych systemach Windows z linii NT (Windows NT, 2000, XP, 2003, Vista itd.) interpreterem jest cmd.exe[7]. W nowych wersjach systemu Windows co prawda aplikacja konsoli, to conhost.exe, ale cmd.exe pozostało tym, co uruchamiają użytkownicy, aby przejść do klasycznego wiersza poleceń w systemach Microsoft Windows[7][8][9].

Program 4DOS firmy JP Software umożliwiał wykonywanie plików wsadowych z Windowsa, ale również wprowadziło swoje rozszerzenia. W szczególności wprowadzili pliki z rozszerzeniem „.btm” (z ang. batch to memory), które ładowały cały plik do pamięci, co miało przyśpieszać pracę takich skryptów[3].

Wsparcie dla plików wsadowych pojawiło się również w OS/2, który firma IBM tworzyła z Microsoftem[3][10][11]. Natomiast bardziej niezależna implementacja pojawiła się w ReactOS[12].

Zobacz też

edytuj

Przypisy

edytuj
  1. Programowanie wsadowe DOS/Windows. www.ee.pw.edu.pl. [dostęp 2023-08-05].
  2. Mauro Huculak last updated: How to create and run a batch file on Windows 10. Windows Central, 2022-02-02. [dostęp 2023-08-05]. (ang.).
  3. a b c d Robin M. Snyder: Using 4DOS Batch Files To Create an Infrastructure That Makes It Easy for Students To Create and Maintain HTML Web Pages. 1998. [dostęp 2023-08-05]. (ang.).
  4. Types of Opportunistic Locks - Win32 apps. learn.microsoft.com, 2021-01-07. [dostęp 2023-08-06]. (ang.).
  5. Skrypty .BAT i programowanie obiektowe. gynvael.coldwind.pl. [dostęp 2023-07-14].
  6. Commands by Server role [online], learn.microsoft.com, 29 lipca 2021 [dostęp 2023-08-03] (ang.).
  7. a b Windows Developer Blog, Adam Denning, Console Improvements in the Windows 10 Technical Preview [online], Windows Developer Blog, 7 października 2014 [dostęp 2023-08-05] (ang.).
  8. Windows Command-Line: Inside the Windows Console [online], Windows Command Line, 20 lipca 2018 [dostęp 2020-09-13] (ang.).
  9. Windows Terminal FAQ [online], learn.microsoft.com [dostęp 2023-08-05] (ang.).
  10. JaTomes Help - OS/2 Batch File Commands [online], web.archive.org, 14 kwietnia 2019 [dostęp 2023-08-05] [zarchiwizowane z adresu 2019-04-14].
  11. Ed Iacobucci, co-founder of Citrix, dies of cancer [online], ZDNET [dostęp 2023-08-05] (ang.).
  12. reactos/base/shell/cmd/cmd.c at master · reactos/reactos [online], GitHub [dostęp 2023-08-05] (ang.).

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

Ping

na ping (ICMP Echo Reply) nazywana jest też pong. Ping korzysta z protokołu ICMP, wysyła pakiety ICMP Echo Request i odbiera ICMP Echo Reply. Większość

Bash

foo(bar)bl(.*)]] then echo "Dopasowanie udało się\!" echo $BASH_REMATCH # wypisuje: foobarbletch echo ${BASH_REMATCH[1]} # wypisuje: bar echo ${BASH_REMATCH[2]}

PowerShell

się ciągiem znaków „new”: PS> Get-Command new* Wyświetla pomoc dla polecenia get-command: PS> Get-Help Get-Command PS1 – skrypty powłoki (ang. shell)

COMMAND.COM

rezydujący w pamięci command.com. Rozpoczyna on interpretację wpisanego ciągu, sprawdzając, czy jest to polecenie wewnętrzne (np. CLS, TYPE, ECHO, PROMPT, IF,

AUTOEXEC.BAT

cmd. IBMBIO.COM IBMDOS.COM IO.SYS MSDOS.SYS COMMAND.COM CONFIG.SYS Autorun.inf Microsoft: „Subst” Command Does Not Work in Autoexec.bat File in Windows

Liverpool

trakcie wojny w Liverpoolu znajdowała się główna siedziba Western Approaches Command. Wraz zakończeniem wojny zaczęła się powolna odbudowa miasta. Po drugiej

History (Unix)

/ Linux : Examples of bash history command to repeat last commands. [dostęp 2020-06-23]. (ang.). history command in Linux with Examples. [dostęp 2020-06-23]

Swarzędz

Drużyna Harcerek „Watra” im. Szarych Szeregów 9 Swarzędzka Drużyna Harcerzy „Echo Puszczy” im. Andrzeja Małkowskiego 9 Swarzędzka Drużyna Wędrowników „Puszczanie”