はじめに バッチファイルでちょっとしたバッチ処理やラッパーを書くときに「よく使ってるなーこれ」という書き方を、備忘録がてらまとめてみました。 テンプレート(1) 引数を受け取らないバッチファイル そらで書けるくらいよく使います。 内容 @echo off setlocal pushd "%~dp0" rem ここに処理を書く rem ここに処理を書く rem ここに処理を書く popd pause 解説 目的1: 「バッチファイル自身のコンテキスト」と「呼び出し元のコンテキスト」を混同しない、汚染しない setlocal で set 文による環境変数のローカル化(呼び出し元を汚染しない) pushd "%~dp0" でこのバッチファイルのディレクトリに移動し、最後に popd で撤収。こうすればこのバッチファイルの存在するディレクトリを基点として、周辺のファイルに相対パスでアクセスできる
![バッチファイルでよく使う書き方まとめ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6b277344a464e97597c26004895dae569868c013/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgzJTkwJUUzJTgzJTgzJUUzJTgzJTgxJUUzJTgzJTk1JUUzJTgyJUExJUUzJTgyJUE0JUUzJTgzJUFCJUUzJTgxJUE3JUUzJTgyJTg4JUUzJTgxJThGJUU0JUJEJUJGJUUzJTgxJTg2JUU2JTlCJUI4JUUzJTgxJThEJUU2JTk2JUI5JUUzJTgxJUJFJUUzJTgxJUE4JUUzJTgyJTgxJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1iZGZhNTk0ZjdmMWJlMzhmYzA1MWYyNmFmYzRmMjZkNQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzdGEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTE4NTY5YTYwMTFmMjg5ZjA0Yjg4MzI4NzczYWM2MzEy%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D362e9f3982932196ff0dd8d08a1a67bf)