basenameコマンド(パスからファイル名を取得する)
形式
basename 文字列[サフィックス]
機能
ファイルパス名規則に従った文字列からファイル名部分の文字列を取り出し,標準出力に出力します。
サフィックス(任意の文字による文字列)を指定すると,取り出した文字列の終端からサフィックスに一致する部分を削除します。
ファイル名部分の文字列の取り出し規則は次のとおりです。
-
指定された文字列の,ディレクトリ区切り文字で区切られた各要素から,最も右側にある要素を取り出します。
-
UNIXの場合,/をディレクトリ区切り文字と見なします。Windowsの場合,/と\をディレクトリ区切り文字と見なします。
-
Windowsの場合,ドライブレターに続く:(コロン)も各要素の区切り文字として扱います。
-
ディレクトリ区切り文字が連続している場合,1つのディレクトリ区切り文字として扱います。
-
指定された文字列の終端がディレクトリ区切り文字の場合は,終端のディレクトリ区切り文字を取り除いたあとのファイル名部分の文字列を取り出します。
-
文字列にディレクトリ区切り文字がない場合,指定された文字列をそのまま取り出します。
-
文字列にディレクトリ区切り文字だけを指定した場合,ディレクトリ区切り文字を取り出します。
引数
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了 |
注意事項
-
このコマンドには指定できるオプションがありません。そのため,引数にオプションを指定した場合,そのオプションを,ファイル名部分を取り出す文字列またはサフィックスとして解釈します。
使用例
-
パス名からファイル名部分の文字列を取り出す例を次に示します。
例1
C:\TEMP>%ADSH_OSCMD_DIR%\basename E:\dir001\file01.txt file01.txt
例2
C:\TEMP>%ADSH_OSCMD_DIR%\basename /dir001 dir001
例3
C:\TEMP>%ADSH_OSCMD_DIR%\basename .\file01.txt file01.txt
例4
C:\TEMP>%ADSH_OSCMD_DIR%\basename E:\dir001\dir002\ dir002
例5
C:\TEMP>%ADSH_OSCMD_DIR%\basename E:\ E:
例6
C:\TEMP>%ADSH_OSCMD_DIR%\basename \\server01\ server01
例7
C:\TEMP>%ADSH_OSCMD_DIR%\basename \\ \
例8
C:\TEMP>%ADSH_OSCMD_DIR%\basename "C:\Documents and Settings\User01\My Documents" My Documents
例9
C:\TEMP>%ADSH_OSCMD_DIR%\basename C:file01.txt file01.txt
-
パス名から拡張子を除いたファイル名を取り出す例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\basename E:\dir001\file01.txt .txt file01