サイトアイコン スグブログ

【bat】バッチで現在のカレントディレクトリに移動する方法

ジャンプ

batファイル現在のカレントディレクトリに移動したい時にどうしていますか?

絶対パスで指定する人もいますが、batファイルを移動した時などはパスを修正しなくてはいけません。

管理人

どんな環境でも修正なしで実行できるbatファイルが好ましいです。

という事で今回はbatで現在のカレントディレクトリに移動する方法を、現役エンジニアの筆者がお伝えします。

windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。

bat(バッチ)で現在のカレントディレクトリを取得する方法

まずは現在のカレントディレクトリを取得する方法をお伝えします。

%~dp0

これでbatファイルが存在するパスを取得する事が可能です。

実際に下のbatファイルを実行して確認して見ます。

@echo off
echo %~dp0
pause

batファイルのカレントディレクトリが表示されています。

bat(バッチ)で現在のカレントディレクトリに移動する方法

現在のカレントディレクトリに移動するbatファイルを試します。

@echo off
cd /d C:\
dir

cd /d %~dp0
dir

pause

ディレクトリを移動するコマンドは「cd」です。「dir」コマンドはカレントディレクトリ配下のファイル一覧を表示できます。

カレントディレクトリに移動するbatの流れ
  1. Cディレクトリ配下に移動してファイル一覧を表示します。
  2. その後にカレントディレクトリに移動してファイル一覧を表示します。

このbatを実行します。

Cドライブ配下のファイル一覧が表示されています。その後にカレントディレクトリに移動してファイル一覧が表示されています。

このbatファイルを別のディレクトリに移動して実行してみます。

batファイルの修正なしで現在のカレントディレクトリに移動してファイル一覧が表示されています。

bat(バッチ)で現在のカレントディレクトリ以外を取得する方法

今回は現在のカレントディレクトリを取得しましたが、他の要素も取得可能です。

その一覧をまとめました。

オプション意味
%~d0バッチファイルのドライブ名
%~p0バッチファイルのパス
%~dp0バッチファイルのドライブ名+パス
%~f0バッチファイル名を含めたパス
%~n0バッチファイル名
%~x0バッチファイルの識別子
%~nx0バッチファイル名(識別子含む)
%~s0バッチファイル名を含めたパス(省略形)
%~a0バッチファイルの属性
%~t0バッチファイルの更新日時
%~z0バッチファイルの容量(バイト)
その他の項目を取得するオプション一覧
モバイルバージョンを終了