dirnameコマンド(パス名からディレクトリパス名部分の文字列を取り出す)
形式
dirname[文字列]
機能
ファイルパス名規則に従った文字列から,ファイル名部分を取り除いた残りのディレクトリパス名を取り出し,標準出力に出力します。
ディレクトリパス名の取り出し規則は次のとおりです。
-
指定された文字列のディレクトリ区切り文字で区切られた各要素のうち最も右側にある要素と,その要素の前にあるディレクトリ区切り文字を取り除いた,すべての要素を取り出します。なお,取り出したディレクトリパス名の途中に連続する区切り文字が存在しても,そのまま取り出します。
UNIXの場合は「/」がディレクトリ区切り文字と見なされ,Windowsの場合は「/」と「\」がディレクトリ区切り文字と見なされます。
-
指定された文字列の終端がディレクトリ区切り文字の場合は,終端のディレクトリ区切り文字を取り除いた上で最も右側にある要素を取り除いた,すべての文字列が取り出されます。
-
文字列にディレクトリ区切り文字がない場合や,文字列を指定していない場合は,カレントを意味する「.」(ピリオド)を出力します。
-
文字列にディレクトリ区切り文字だけを指定した場合は,ディレクトリ区切り文字を取り出します。
-
Windowsの場合,文字列の先頭1文字が英字で,次に「:」(コロン)が続いた場合,英字はドライブレターとして扱います。ドライブレターに続く「:」(コロン)も,各要素の区切り文字として扱います。
-
Windowsの場合,ルートディレクトリのディレクトリパスは,上記の規則に関係なく,次のように取り出されます。
パス名の開始文字列の形式
dirnameコマンドの取り出し結果
ドライブレター:\
ドライブレター:\
ドライブレター:
ドライブレター:
\\サーバ名(UNC名指定)
\\
\\?(サービス機能の不活性化指定)
\\
\\.(10番以降のデバイス名指定)
\\
dirnameコマンドの指定値と取り出し結果の例を次に示します。
dirnameコマンドの指定値 |
取り出し結果 |
---|---|
C:\ |
C:\ |
C: |
C: |
\\server01\ |
\\ |
\\server01 |
\\ |
\\?\ |
\\ |
\\? |
\\ |
\\.\ |
\\ |
\\. |
\\ |
\\ |
\\ |
C:file001.txt |
C: |
C:\file001.txt |
C:\ |
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了 |
注意事項
-
このコマンドには指定できるオプションが存在しません。そのため,引数にオプションを指定した場合,そのオプションはディレクトリパス名部分を取り出す文字列として解釈します。
使用例
-
パス名からディレクトリパス名部分の文字列を取り出す例を次に示します。
例1
C:\TEMP>%ADSH_OSCMD_DIR%\dirname E:\dir001\file01.txt E:\dir001
例2
C:\TEMP>%ADSH_OSCMD_DIR%\dirname /dir001 /
例3
C:\TEMP>%ADSH_OSCMD_DIR%\dirname .\file01.txt .
例4
C:\TEMP>%ADSH_OSCMD_DIR%\dirname E:\dir001\dir002\ E:\dir001
例5
C:\TEMP>%ADSH_OSCMD_DIR%\dirname E:\ E:\
例6
C:\TEMP>%ADSH_OSCMD_DIR%\dirname \\server01\ \\
例7
C:\TEMP>%ADSH_OSCMD_DIR%\dirname \\server01\com \\server01
例8
C:\TEMP>%ADSH_OSCMD_DIR%\dirname \\ \\
例9
C:\TEMP>%ADSH_OSCMD_DIR%\dirname "C:\Documents and Settings\User01\My Documents" C:\Documents and Settings\User01
例10
C:\TEMP>%ADSH_OSCMD_DIR%\dirname C:file01.txt C:
例11
C:\TEMP>%ADSH_OSCMD_DIR%\dirname C:\file01.txt C:\
例12
C:\TEMP>%ADSH_OSCMD_DIR%\dirname file01.txt .
-
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\> dirname /a/b /c/d usage: dirname [string]