コマンドを実行するバッチファイルで実行ディレクトリを取得する方法

 
文書番号:20451




コマンドを実行するバッチファイルを作成する際、同じフォルダ内に配置した別のファイル(exeやcmd、sql)を指定して実行したい場合があります。

そのコマンドファイルをどこに配置するかで更に呼ぶファイルのパスも変わってきます。

1回きりならフルパスを直接書いてもいいのですが、使いまわすコマンドファイルなどの場合、必ずしも同じパスのフォルダに配置できるとは限りません。

そこでバッチファイルを実行したディレクトリを取得してそのパス+別の実行したいファイル名でフルパスを作成できれば流用時にも便利に使えます。

その場合は以下のように実行します。

【実行ディレクトリを取得する】


    バッチファイルの実行ディレクトリは「%~dp0」で取得できます。
    
    rem 実行ディレクトリを取得
    set current_dir=%~dp0
    
    rem 変数にセットされた値を表示
    echo %current_dir%
    

    変数にセットして使うことができます。
    
    rem 実行ディレクトリを取得
    set current_dir=%~dp0
    
    rem SQLファイルを指定して実行する
    sqlplus system/パスワード @%current_dir%start.sql