解説 目的1: 「バッチファイル自身のコンテキスト」と「呼び出し元のコンテキスト」を混同しない、汚染しない setlocal で set 文による環境変数のローカル化(呼び出し元を汚染しない) pushd "%~dp0" でこのバッチファイルのディレクトリに移動し、最後に popd で撤収。こうすればこのバッチファイルの存在するディレクトリを基点として、周辺のファイルに相対パスでアクセスできる 目的2: 表示をすっきりさせる @echo off で「実行されるコマンド」が標準出力に出るのを抑止する(これしないと画面が見辛い) 目的3: 実行結果を読む pause を実行させてキーを押すまで画面を停止させる(これしないとダブクリで実行した時にすぐにウィンドウが消えて何が起きたのかわからない) テンプレート(2) 引数を受け取るバッチファイル バッチファイルでコマンドを作る時に使うテンプレート