コンテンツにスキップ

バッチファイル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
BAT
拡張子.bat, .cmd (Windows NT)
MIMEタイプapplication/x-bat
種別スクリプト言語

: batch fileMS-DOSOS/2WindowsCOMMAND.COMcmd.exe[1]UNIX

DOS.BATWindows NTOS/2.CMD 使[2]4DOS  .BTM 使[3]

AUTOEXEC.BAT

[]


DOSWindows (OS) OS2UNIX1980CP/M

MS-DOSCOMMAND.COMMS-DOSCOMMAND.COMMS-DOSWindows 95Windows 98Windows MeWindows 9x

Windows 2000Windows XPMS-DOSWindows NTWindows NTcmd.exe使COMMAND.COMMS-DOSMS-DOSMS-DOSWindowsCOMMAND.COM

2006.NET FrameworkWindows PowerShellWindows PowerShelldirWindowsPowerShellWindows.NET Core

代表的なコマンド[編集]

echo[編集]


echo

echo onecho offON/OFFON[4]echo off  echo off  @  @echo off 

rem[]


remrem[5]

cls[]



call[]


使

for[6][]



for (オプション) %%変数名 in (ループの対象) do(コマンド)

in1%%do/r

/din1do

/l
for /l %%変数 in (開始値、増分、終了値) do コマンド

dododo

cd[]


cd

dir[]


使

shift[7][]




使:10(9)10shift

:
test.bat ar1 ar2 ar3 ar4 ar5 ar6 ar7 ar8 ar9 ar10

コード:

@echo off
shift
echo 第9引数は%9です。

出力:

第9引数はar10です。

特殊な変数[8][編集]


()

%1,%2,%3...%9[]


1,2,3,4...1010shift

%CD%[]


cdcd

%DATE%[]


date

%TIME%[]


hh:mm:ss.ms

%RANDOM%[]


032767forfor3276715bit

%ERRORLEVEL%[]


0-1if使

%CMDEXTVERSION%[]


cmd

%HIGHESTNUMANODENUMBER%[]


NUMA使

変数の読み込みタイミング[9][編集]

set num=1 
if %num% == 1 (
    set /a num+=1 
    echo %num%
)
pause

numnum221ifnum()11

2

![]


!

!使

!2

setlocal使[]


setlocal enabledelayedexpansion

使!

setlocal enabledelayedexpansionendlocal

[編集]

  • 単純なバッチファイルの例:
@echo off
cls
echo.
echo Hello World, press any key to start AProgram.exe!
pause > nul
AProgram.exe
echo.
echo AProgram has finished whatever it was doing. Have fun today!

画面出力:

Hello World, press any key to start AProgram.exe!

AProgram has finished whatever it was doing. Have fun today!
@echo off
echo Hello world!!
pause > nul

画面出力:

Hello world!!
3の倍数ならFizz、5の倍数ならBuzz、15の倍数ならFizz Buzzと表示し、FizzBuzz.txt に結果を出力
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
if exist %cd%\FizzBuzz.txt del %cd%\FizzBuzz.txt
for /l %%i in (1,1,100) do (
set echo=
set /a f=%%i%%3,b=%%i%%5
if !f!==0 set echo=!echo!Fizz
if !b!==0 set echo=!echo!Buzz
if "!echo!"=="" set echo=%%i
echo !echo!>>%cd%\FizzBuzz.txt
)

画面出力:なし