batファイルの基本テンプレート
code:bat
@echo off
pushd %~dp0
setlocal enabledelayedexpansion
rem 処理
popd
pause
@..
@以下のコマンドを画面に表示しない
echo off
コマンドを画面に表示しない
pushd %~dp0
batファイルが存在するディレクトリに移動する
%~dp0
%0 .. ファイル名 ("で括られていることがある)
~ .. "を取り除く
d .. ドライブ文字
p .. ドライブ文字とファイル名を除く
検証
code:test.bat
@echo off
echo %%0 - %0
echo %%~0 - %~0
echo %%~d0 - %~d0
echo %%~p0 - %~p0
echo %%~dp0 - %~dp0
code:結果
%0 - "t e s t.bat"
%~0 - t e s t.bat
%~d0 - C:
%~p0 - \test\
%~dp0 - C:\test\
setlocal enabledelayedexpansion
検証
code:test.bat
@echo off
setlocal enabledelayedexpansion
set number=1
if %number% == 1 (
set number=2
rem 1 if実行時に%number%が評価される (即時評価)
echo %number%
)
rem 2
echo %number%
set number=1
if %number% == 1 (
set number=2
rem 2 echo実行時に!number!が評価される (遅延評価)
echo !number!
)
rem 2
echo %number%
code:結果
1
2
2
2
popd
pushdした時点のディレクトリに戻る
pause
処理を一時停止する