C:\app\SampleApp\Launcher.exe
というパスがあった時に、
ファイルが存在するディレクトリのパス C:\app\SampleApp\
と ファイル名 Launcher.exe
を抽出したい。という要件があった場合
これをWindowsのDOSコマンドで実現するために、
ディレクトリの抽出には以下を使用します。(以下は、 %1 のパラメータを対象としています)
%~dp1
ファイル名の抽出には以下を使用します。(以下は、 %1 のパラメータを対象としています)
%~nx1
上記のコマンドを実行するExtractPath.cmd
というファイルを以下のように記述して
@echo off echo [DirPath]: %~dp1 echo [FileName]: %~nx1
パラメータにパスを与えて実行すると
ExtractPath.cmd C:\app\SampleApp\Launcher.exe
結果は以下のようになります。
C:\Samples\ExtractPath.cmd C:\app\SampleApp\Launcher.exe [DirPath]: C:\app\SampleApp\ [FileName]: Launcher.exe
実行したコマンド自体のパスの抽出
上記と同様でしかないですが、引数ではなく自分自身のコマンドのディレクトリとファイル名の抽出は
%~dp0
と%~nx0
で可能です。
ExtractPath2.cmd
というファイルを以下のように記述して
@echo off echo [DirPath]: %~dp0 echo [FileName]: %~nx0
これを実行すると
ExtractPath.cmd
結果は以下のようになります。
C:\Samples\ExtractPath2.cmd [DirPath]: C:\Samples\ [FileName]: ExtractPath2.cmd
無事に、DOSコマンドでもファイルパスからディレクトリのパスやファイル名の抽出が実現できました。