今回は下記内容を説明していきたいと思います。
- カレントディレクトリの意味が分かる
- batファイルを記載するとき記載する「%~dp0」の意味が分かる
- カレントディレクトリを使ったbatファイルの活用例
batファイルを触り始めて間もない方でも躓かないように記事を書いているのでぜひ楽しんでください。
ちなみにbatファイルの作り方について、ゼロから解説しているbatファイル入門の記事があります。
カレントディレクトリとは
カレントディレクトリは2ワードのからなる複合語になります。
- カレント:現在
- ディレクトリ:windowsではフォルダーとも言います。
その名の通り、ユーザーが現在作業をしているフォルダーを「カレントディレクトリ」といいます。
windowsの場合、コマンドプロンプトを立ち上げて、「cd」と入力すると「カレントディレクトリ」が表示されます。
解説:「%~dp0」
「%0」:フォルダーパスを取得する環境変数
環境変数とは、windows OSにてもとから情報が格納されている特殊な変数になります。
補足:変数とは
変数がわからない方向けに情報を補足します。
変数とはプログラミングなどで情報を入れる箱のようなものになります。
コマンドプロンプト上でも変数は作ることができます。例えば下記のような形で試しに作ってみましょう。
set myname=testuser echo %myname% pause
コマンドプロンプト上での実行結果は下記のとおりです。
これで変数についての簡単な世界観はお分かり頂けたかと思います。
話は戻りまして、「%0」も変数ではありますが、ほかの変数とは異なり特殊な変数になります。
では実際に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」について、よく使われるケースをご紹介したいと思います。
cd /d %~dp0
cdは「change directory」の略でフォルダーを移動する際に使われるコマンドです。
通常、コマンドプロンプトにてドライブ間(例えば、CドライブとDドライブ間)は移動できません。しかし、オプションの「/d」を加えることでドライブ間の移動が可能になります。
「cd /」と「%~dp0」を組み合わせることでどこでも実行可能なbatファイルを作ることができます。
ipconfig /allの実行結果をテキストファイルへ書き出す
最後に「%~dp0」を使った簡単なケーススタディをご紹介して終わります。
下記のような処理をするbatファイルを作成します。
- PCのネットワーク情報をテキストファイルに書き出して保存する
コマンドは下記のとおりです。
cd /d %~dp0 ipconfig /all > test.txt
手順1:フォルダーを1つ作る
デスクトップなど任意のフォルダーに1つbatファイルを格納する用のフォルダーを作成してください。
フォルダー名はお好きな名前で構いませんが、本記事では「test」にしておきます。
手順2:batファイルを作成する
先ほど作成したフォルダーの中に下記の記載をしたbatファイルを作ってください。
cd /d %~dp0 ipconfig /all > test.txt
手順3:実行結果を確認する
問題なくbatファイルが作成されている場合、testフォルダー内にtest.txtが作成されているかと思います。
ダブルクリックをしてファイルの中身を確認してください。するとIPアドレス等の情報が記載されているファイルが生成されているはずです!
最後に
今回は、batファイルをカレントディレクトリで実行する方法についてご紹介しました。
ちなみに、batファイルはアクティブディレクトリのグループポリシーでも使われますので、
もし気になる方は下記記事も読んでいただくことでよりbatファイルについての理解も深まると思います!
コメント