[前の記事]« [NT4.0]更新日が最新のファイルのバイト数を取得したい
[次の記事]行が長いバッチファイルに適宜改行を入れたい »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DIR…ディレクトリ(フォルダー)/ファイルの一覧」索引へ

[WIN2000/XP]現在のディレクトリ名を取得する方法

481.
現在のディレクトリ名取得方法について
2004年05月27日(木) 23時32分
たい
バッチファイル内で、カレントディレクトリのフルパスではなく自分のいるディレクトリ名(フォルダ名)だけを取得したいと考えています。
カレントディレクトリが、C:\Work\test01であれば、test01のみです。

UNIXの場合、cshなどでは

set CurDir=`pwd`
echo $CurDir:t

とすることで取得可能ですが、同様のことが可能でしょうか。
FOR文とdelimiter=\あたりで試行錯誤しましたが、ディレクトリ階層の数に自動追従するよい方法が見つかりませんでした。
現在、WSHにて回避していますが、できれば使わずに実現したいと思っております。

アドバイスお願いいたします。
482.
Re:現在のディレクトリ名取得方法について
2004年05月28日(金) 10時08分
じゃく
>バッチファイル内で、カレントディレクトリのフルパスではなく自分のいるディレクトリ名(フォルダ名)だけを取得したいと考えています。
>カレントディレクトリが、C:\Work\test01であれば、test01のみです。

OSを2000/XPと仮定しています。
環境変数 pwd にディレクトリ名をセットします。
カレントがルートディレクトリのときは "\" を返すようにしています。(本来は空になります)

echo off
call :sub "%cd%"
echo %pwd%
goto end

:sub 
set pwd=%~n1
if "%pwd%"=="" set pwd=\
goto :EOF

:end
483.
Re:現在のディレクトリ名取得方法について
2004年05月28日(金) 10時08分
YanaKen
たい さん、こんにちは。

>バッチファイル内で、カレントディレクトリのフルパスではなく自分のいるディレクトリ名(フォルダ名)だけを取得したいと考えています。

 Windows2000上でテストしてみた結果では、

for %%I in (.) do set DIRNAME=%%~nI%%~xI

 ……で取得できるようです。

※ルートディレクトリにいる場合は、上記環境変数 DIRNAME は"空"になります。
※「質問の前提となるOSのバージョン」明記によろしくご協力を。上記はWindows95/98/Meでは不可能、NT4は未確認です。

YanaKen
484.
Re2:現在のディレクトリ名取得方法について
2004年05月28日(金) 10時16分
じゃく
YanaKenさんの書き込みを見て間違いを訂正します。 (^^;;
for文の方だと、1行でできてしまいますね。

------------------- 訂正
echo off
call :sub "%cd%"
echo %pwd%
goto end

:sub 
set pwd=%~n1%~x1
if "%pwd%"=="" set pwd=\
goto :EOF

:end
485.
Re2:現在のディレクトリ名取得方法について
2004年05月28日(金) 21時33分
たい
YanaKenさん

OSバージョンの未記入失礼いたしました。
想定していたOSは、2000/XPで、XPで動作確認いたしました。

>for %%I in (.) do set DIRNAME=%%~nI%%~xI

マイクロソフトのヘルプでは、%~n は「ファイル名に展開します。」とあったので最初からあきらめていました。

ありがとうございました。

たい
486.
Re3:現在のディレクトリ名取得方法について
2004年05月28日(金) 21時39分
たい
じゃくさん

ありがとうございました。
XPにて動作確認いたしました。

%~x1の追加は、"."を含むディレクトリ名に対応するという理解でよいのですよね。
ラベルを使った方法だと取得したディレクトリ名によって制御を変えたいときに便利そうです。

すっきりしました。
ありがとうございました。

たい
 

481.現在のディレクトリ名取得方法について たい 04/05/27(木) 23:32
482.Re:現在のディレクトリ名取得方法について じゃく 04/05/28(金) 10:08
484.Re2:現在のディレクトリ名取得方法について じゃく 04/05/28(金) 10:16
486.Re3:現在のディレクトリ名取得方法について たい 04/05/28(金) 21:39
483.Re:現在のディレクトリ名取得方法について YanaKen 04/05/28(金) 10:08
485.Re2:現在のディレクトリ名取得方法について たい 04/05/28(金) 21:33
 
 


カテゴリー「DIR…ディレクトリ(フォルダー)/ファイルの一覧」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年05月27日 12:08に投稿されたエントリーのページです。

ひとつ前の投稿は「[NT4.0]更新日が最新のファイルのバイト数を取得したい」です。

次の投稿は「行が長いバッチファイルに適宜改行を入れたい」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート