v příkazovovém řádku si napíšeš sled základních příkazů, pak dávku pojmenuješ s příponou bat, cmd, u tučňáků nepovinně sh nebo ničím (samozřejmě s jejich syntaxí).
no a po spuštění to začne něco dělat:
@echo off & REM # dostupne disky v XP,W7 en/cz
REM # parametry:
REM # batka - bez parametru vypise velikost NTFS disku
REM # batka free - u NTFS vypise volne misto
REM # batka sna - pro HirensCD, na discich hleda .sna zalohy v rootu
REM # batka * - test
echo "%1 %2" | find "*" >nul
if not errorlevel 1 mode con: lines=999
:USER
REM net user %username% | find "*Users"
REM if errorlevel 0 if not errorlevel 1 pause && goto END
:LANG
(set gb=Gbyte) & (set prm=%1.)
if %computername%==MiniXP (set prm=sna.)
(set fhdd=Fixed) & (set fvol=me Na) & (set ffs=em Na) & (set fsum=of by)
if "%prm%"=="free." (set fsum=of fr) && (set gb=Gbyte free)
ver /? | find "Zobraz" >nul
if errorlevel 1 goto VYPIS
(set fhdd=disk) & (set fvol=ev sv) & (set ffs=ev sy) & (set fsum=et ba)
if "%prm%"=="free." (set fsum=et vo) && (set gb=Gbyte free)
:VYPIS
echo disk: typ, filesystem, nazev, kapacita [%computername%]
echo =================================================
for /f "tokens=* delims=#" %%a in ('fsutil fsinfo drives ^| find ":"') do (set drives=%%a)
if "%drives:~15,1%"=="" goto FSLOUPEC
:FRADEK
REM - W7 DS, W7 en
for /f "tokens=* delims=, " %%a in ("%drives%") do (set retez=%%a)
for %%i in (%retez%) do call :_IKS %%i
goto END
:_IKS
(set iks=%1)
if "%iks:~-1%"==":" goto :EOF
(set iks=%iks:~0,2%)
call :DISK %iks%
goto :EOF
:FSLOUPEC
REM - XP cz, XP en
for /f "tokens=1,2 delims=\ " %%a in ('fsutil fsinfo drives ^| find ":"') do call :DISK %%a %%b
goto END
:DISK
(set dsk=%1) & (set dsk2=%2) & (set sna= )
if not "%2"=="" set dsk=%2
if %dsk%==B: if %prm%==sna. goto :EOF
REM -- popis jednotky --
for /f "tokens=* delims=?" %%t in ('fsutil fsinfo drivetype %dsk%') do (set dtype=%%t)
fsutil fsinfo volumeinfo %dsk%\ >nul
if errorlevel 1 goto CDR
REM -- label a fs --
for /f "tokens=2 delims=:" %%v in ('fsutil fsinfo volumeinfo %dsk%\ ^| find "%fvol%"') do (set vvol=%%v)
for /f "tokens=2 delims=:" %%f in ('fsutil fsinfo volumeinfo %dsk%\ ^| find "%ffs%"') do (set vfs=%%f)
echo %vfs% | find "NTFS" >nul
if errorlevel 1 goto FATx
REM -- velikost NTFS jen local --
fsutil volume diskfree %dsk% >nul
if errorlevel 1 goto FATx
for /f "tokens=2 delims=:" %%b in ('fsutil volume diskfree %dsk% ^| find "%fsum%"') do (set _vel=%%b)
for /f "tokens=1 delims= " %%b in ("%_vel%") do (set vel=%%b)
(set vel=%vel:~0,-6%)
(set /a "vel=%vel%/1070")
if %vel%==0 (set tabr=%dtype% %vfs:~1% - %vvol:~1%) && goto DRADEK
(set tabr=%dtype% %vfs:~1% - %vvol:~1% ~ %vel% %gb%)
if not %prm%==sna. goto DRADEK
if not exist %dsk%\*.sna goto DRADEK
for /f "tokens=* delims=?" %%s in ('dir %dsk%\*.sna /b ^| find ".sna"') do (set sna=%dsk%\%%s)
(set tabr=%tabr%, %sna%)
goto DRADEK
:CDR
echo %dtype%
goto :EOF
:FATx
(set tabr=%dtype% %vfs:~1% - %vvol:~1%)
if not %prm%==sna. goto DRADEK
if not exist %dsk%\*.sna goto DRADEK
for /f "tokens=* delims=?" %%s in ('dir %dsk%\*.sna /b') do (set sna=%dsk%\%%s)
(set tabr=%tabr%, %sna%)
:DRADEK
echo %tabr%
goto :EOF
:END
a to, co tyto běžné interní nebo samostatné externí příkazy s jejich parametry přeloží k vykonání, to je ten interpret.