【Windows】バッチファイルでカレントディレクトリを取得する方法【初心者向け解説】

Batファイル
この記事は約5分で読めます。

今回は下記内容を説明していきたいと思います。

本記事でわかること
  • カレントディレクトリの意味が分かる
  • batファイルを記載するとき記載する「%~dp0」の意味が分かる
  • カレントディレクトリを使ったbatファイルの活用例

batファイルを触り始めて間もない方でも躓かないように記事を書いているのでぜひ楽しんでください。

ちなみにbatファイルの作り方について、ゼロから解説しているbatファイル入門の記事があります。

カレントディレクトリとは

カレントディレクトリは2ワードのからなる複合語になります。

  • カレント:現在
  • ディレクトリ:windowsではフォルダーとも言います。

その名の通り、ユーザーが現在作業をしているフォルダーを「カレントディレクトリ」といいます。

windowsの場合、コマンドプロンプトを立ち上げて、「cd」と入力すると「カレントディレクトリ」が表示されます。

解説:「%~dp0」

「%0」:フォルダーパスを取得する環境変数

環境変数とは、windows OSにてもとから情報が格納されている特殊な変数になります。

補足:変数とは

変数がわからない方向けに情報を補足します。

変数とはプログラミングなどで情報を入れる箱のようなものになります。

コマンドプロンプト上でも変数は作ることができます。例えば下記のような形で試しに作ってみましょう。

myName.bat
set myname=testuser
echo %myname%
pause

コマンドプロンプト上での実行結果は下記のとおりです。

これで変数についての簡単な世界観はお分かり頂けたかと思います。

話は戻りまして、「%0」も変数ではありますが、ほかの変数とは異なり特殊な変数になります。

では実際にbatファイルで作成してましょう。

test.bat
echo %0
pause

画像の通りですが、「%0」でbatファイルを実行すると下記のようにフォルダーパスが格納されています。

“C:\Users\testuser\Desktop\test.bat”

「~」:ダブルクォーテーションを取り除く

まず、読み方ですが「チルド」と呼びます。

これはダブルクォーテーションマークを取り除くコマンドになります。

チルド込みのbatファイルを実行すると「””」ダブルクリックが除かれたフォルダーパスが表示されます。

C:\Users\testuser\Desktop\test.bat

「d」:ドライブ名のみを取得する

dは「ドライブ名」のみを指定する文字になります。

%~0の「~」の後にdを付け足すと、ドライブ名のみが取得できます。

実際に「%~d0」をbatファイルで実行すると下記のように表示されます。

C:

「p」:batファイルを除くフォルダーパスを取得する

最後に「p」の説明をします。

「p」は「ドライブ名実行しているファイル以外」のフォルダーパスを指定する文字になります。

実際に「%~p0」をbatファイルで実行すると下記のように表示されます。

\Users\testuser\Desktop\

まとめ:「””」とbatファイルを除いたフォルダーパスを取得するコマンド

ここまで読まれた方はもうお分かりだと思いますが、「%~dp0」は大まかに下記2つを実行するコマンドになります。

  • ””「ダブルクォーテーション」を外す
  • batファイルを除いたフォルダーパスを取得する

もう何気なく記載していたbatファイルの意味も理解できたのではないかと思います。

活用例

cd /d %~dp0

最後に「%~dp0」について、よく使われるケースをご紹介したいと思います。

export.bat
cd /d %~dp0

cdは「change directory」の略でフォルダーを移動する際に使われるコマンドです。

通常、コマンドプロンプトにてドライブ間(例えば、CドライブとDドライブ間)は移動できません。しかし、オプションの「/d」を加えることでドライブ間の移動が可能になります。

「cd /」と「%~dp0」を組み合わせることでどこでも実行可能なbatファイルを作ることができます。

ipconfig /allの実行結果をテキストファイルへ書き出す

最後に「%~dp0」を使った簡単なケーススタディをご紹介して終わります。

下記のような処理をするbatファイルを作成します。

  • PCのネットワーク情報をテキストファイルに書き出して保存する

コマンドは下記のとおりです。

export.bat
cd /d %~dp0
ipconfig /all > test.txt

手順1:フォルダーを1つ作る

デスクトップなど任意のフォルダーに1つbatファイルを格納する用のフォルダーを作成してください。

フォルダー名はお好きな名前で構いませんが、本記事では「test」にしておきます。

手順2:batファイルを作成する

先ほど作成したフォルダーの中に下記の記載をしたbatファイルを作ってください。

export.bat
cd /d %~dp0
ipconfig /all > test.txt

手順3:実行結果を確認する

問題なくbatファイルが作成されている場合、testフォルダー内にtest.txtが作成されているかと思います。

ダブルクリックをしてファイルの中身を確認してください。するとIPアドレス等の情報が記載されているファイルが生成されているはずです!

最後に

今回は、batファイルをカレントディレクトリで実行する方法についてご紹介しました。

ちなみに、batファイルはアクティブディレクトリのグループポリシーでも使われますので、

もし気になる方は下記記事も読んでいただくことでよりbatファイルについての理解も深まると思います!

コメント

タイトルとURLをコピーしました