[前の記事]« ディスク交換のため停止しながらファイルを結合するには?
[次の記事]UNIXのtail(ファイルの最下行のみを表示)に相当するコマンドは? »

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

▲カテゴリー「IF(結果の検査、条件分岐)」索引へ

空のディレクトリの判別方法


307) 空のディレクトリ しゅん 2002/05/16(木) 16:11


はじめまして
初心者なのですが、空のディレクトリを判別するには
どのような方法があるのでしょうか?

宜しくお願い致します

311) Re:空のディレクトリ れしぴ 2002/05/17(金) 11:31


れしぴです。

>初心者なのですが、空のディレクトリを判別するには

やったことないのですが

EXIST filename

のfilenameを*.*にすればIF文で判定できないかな?
詳しくは
HELP IF
で見てみてください。

れしぴ

312) Re2:空のディレクトリ れしぴ 2002/05/17(金) 11:47


>HELP IF

上記はW2kの場合でした。
Win95は
IF /?
でお願いします。

323) Re3:空のディレクトリ しゅん 2002/05/21(火) 11:12


>>HELP IF

>上記はW2kの場合でした。
>Win95は
>IF /?
>でお願いします。

返信ありがとうございます。
説明不足でした。
空のディレクトリっていうよりも、サブディレクトリのないディレクトリを判断したいんです。

EXIST filename

では、ディレクトリ内のファイルの有無は判別できると思うのですが、サブディレクトリの有無までは判別できないと思うのですが。

お願いいたします


324) Re4:空のディレクトリ SYSOP 2002/05/21(火) 12:29


しゅん さん こんにちは。

★質問時は、どのバージョンのDOS/Windowsが前提かを必ず書いてくださいね。

>空のディレクトリっていうよりも、サブディレクトリのないディレクトリを判断したいんです。

 NT系(ただしWindows2000以降)であれば、
FOR /D %%A IN (C:\XXX\*.*) DO ....
 ……のように、FORコマンドを/D スイッチつきで使用することで、サブディレクトリがあった場合専用の処理を定義できます。詳細はFORのヘルプを調べてみてください。(ヘルプを参照した上で、もしわからないことがあったらまた聞いてください)
95/98/Me系でのお話でしたら、ちょっとすぐには思いつきません。標準では方法がないかもしれません。ちなみに、

>EXIST filename

>では、ディレクトリ内のファイルの有無は判別できると思うのですが、サブディレクトリの有無までは判別できないと思うのですが。

 じつはこれ、(念のため実験してみたんですけど)IF EXIST *.* のようにした場合、NT系と95系で挙動が異なるようです。
 NT系では実際には空でも"." (そのディレクトリ自身)や".."(親ディレクトリ)が検索にヒットしてしまうため、「何もファイル(やディレクトリ)がない」状態の検出にはこの構文が使えません。
 したがって、ファイルの有無を判別する場合も、FOR %%F IN (*.*) DO ....のほうが安全だと思われます。

YanaKen


478) Re5:空のディレクトリ じゃく 2002/07/13(土) 12:27


dir ディレクトリ名 /b > tmp.txt
として、tmp.txtのサイズが0なら空ですね。

あとは、無理矢理tmp.txtのサイズを調べるように
バッチを駆使する方法しか思いつきません。

じゃく

 
 


カテゴリー「IF(結果の検査、条件分岐)」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2002年05月16日 12:18に投稿されたエントリーのページです。

ひとつ前の投稿は「ディスク交換のため停止しながらファイルを結合するには?」です。

次の投稿は「UNIXのtail(ファイルの最下行のみを表示)に相当するコマンドは?」です。

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

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