Batch

Batch - kopia zapasowa pliku

@echo off

if exist plik.txt goto jestplik
:goto koniec

:jestplik
if exist plik.bak del plik.bak
copy plik.txt plik.bak > null

:koniec

Podstawowe polecenia plików batch

Zasady budowy batch'a:
- każda nowa linia jest nowym poleceniem
- komentarze poprzedzone słowem rem
- %0 zmienna odpowiadająca nazwie pliku batch'a
- %1 .. %n zmienne odpowiadające argumentom wywołania batch'a
@echo off - wyłączanie wszelkich komunikatów
echo napis - wyświetla słowo napis
echo napis1 napis2 - wyświetla słowo napis1 i napis2
cls - czyści ekran
@echo on - włącza komunikaty
dir > null - przekierowanie strumienia wyjściowego na null (śmietnik)
pause - program będzie czekał na naciśnięcie dowolnego klawisza
rem - linia z komentarzem
call - chwilowe przekazanie rozkazu wykonania innemu programowi
:etykieta - znacznik w programie
goto etykieta - instrukcja skoku to etykiety
if exist "%1" echo jest argument - sprawdzenie czy w wywołaniu batch'a pojawił sie argumetnt
if "%a"=="%1" - porównanie 2 zmiennych
set x=jakistext%dodatkowazmiennatextowa%znowtext - przypisanie do x tekstu
set /a x=5 - przypisanie arytmetyczne

Batch - Łączenie plików tekstowych

np nazwa_programu plik1 plik2 plik3 zostnie połaczone : na poczatku plik1 potem plik2 i na końcu plik 3.

@echo off

if exist "%1" goto ok1
goto blad

:ok1
if exist "%2" goto ok2
goto blad

:ok2
if exist "%3" goto allok
goto blad

:allok
copy /b %1+%2+%3 pom > NULL
copy /b pom %2 > NULL
del pom
goto koniec

:blad
echo blad wykonania batcha
goto koniec

:koniec

wykozystując batcha można zrobić zmiany w całym katalogu...

@echo off
for %%i in (*.pas) do call p plik1.txt %%i plik2.txt

Batch - wypisuje zawartość pliku o ile ten istnieje

rem File Echo

rem Program wypisuje zawartośc pliku o ile ten istnieje.

cls
@echo off

if "%1"=="/?" goto skladnia
if not "%1"=="" goto program
goto koniec

:program
if exist "%1" goto istnieje
if not exist "%1" goto nieistnieje
goto koniec

:istnieje
echo Plik istnieje (oto jego zawartosc)
type %1
goto koniec

:nieistnieje
echo Plik nie zostal odnaleziony
goto koniec

:skladnia
echo program wypisujacy zawartosc pliku  /skladnia/ :
echo  [program] [filename.ext]
goto koniec

:koniec

Batch - kasowacz plików

cls
@echo off

: start
if "%1" == "/?" goto Informacja
if "%1" == "" goto koniec
del %1
shift
goto start

:informacja
echo Batch %0 usuwa pliki
goto skladnia

:skladnia
echo Skladnia polecenia:
echo %0 [/?] plik1 plik 2 ....

:koniec

Batch tworzy i włazi do kolejnych swoich podkatalogów

rem Tworzy i włazi do kolejnych swoich podkatalogów.

@echo off

if not exist a mkdir a
if not exist "a\%0" copy %0.bat .\a
cd a
%0

2012.11.22 22:29:06.