†DOSとバッチとスクリプト†
作成開始日 2021.02.07
最終更新日 2021.02.08
ECHO %CD%
あるいは;
SET CURDIR=%CD%
のような形式で参照可能。先頭2文字を取り出せばドライブレターになるし、3文字目から末尾まで取り出せばパス名になる。このあたりの文字列処理は難しくない。
少々厄介なのが、パスなしでディレクトリ名のみを取り出す場合。たとえば、「%CD%」が「E:¥MYWORK¥DATA3」場合、「DATA3」だけが欲しいことがある。これを文字列処理で取得するのはかなり面倒臭い。階層数やディレクトリ名の文字数などに規則性があれば別だが、一般化するとコードがかなりややこしくなる。
ここで登場するのが、フルパス名を要素(ドライブレター、パス名、ファイル名、拡張子など)に分解する機能;通称「にょろん」(今私が名付けた)。ただし、にょろんは引数変数専用の機能。一般的な環境変数で使用するには一手間掛ける必要がある。
for %%a in (%CD%) do (set dirname=%%~na)
ここでは「%CD%」の中身を「%%a」という引数変数に読み込ませて、「%%~na」で「%%a」からディレクトリ名を取り出して、環境変数「%dirname%」(dirname)に設定している。