客先によっては、自分なりの環境を整えるのが難しいところがある(最近は多い)。
なので、バッチファイルって意外と重宝する。
でもって、気になって調べてみると、今更ながら情報って少ないねぇ。
なんつーか、探しきれてないのだろうけど。
で、ここ数日悩みのタネだったのが、タイトルにあるとおり、フォルダの中身の調査。
何故必要かはおいといて、調査結果を…
基本、2ch情報だけど、こういうのがあった。
ユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/124-125
124 :名無し~3.EXE:2007/06/16(土) 19:02:59 ID:CXEmvWRn
DIR /B "C:\hoge" | FIND /V "" > NUL で ERRORLEVEL=1 なら空。
ってのは強引?
125 :名無し~3.EXE:2007/06/18(月) 01:45:27 ID:H6wUdAfo
読みやすさ優先ならfor /r と set /a ってなところだろうけどねぇ
124のは単純だね。DIRで取得した結果が空じゃなければERRORLEVELは0だから。
あとはIF文をどうするかってことだね。
ってことで、125のやつ。
これは、FORでフォルダ内部のファイルを列挙して、SET /Aで数を数えるってことかな?
@ECHO OFF
SET /A CNT=0
FOR /R パス %I IN (*) DO (
SET /A CNT=CNT+1
)
これでCNTがゼロでなければファイルはあることになるので、フォルダは空じゃないと…
しかし、SETで計算できるの知らなかったな。
もう少し、修行が必要かな?
2008/05/01 - 追記
バッチファイルなら、%を重ねないといかんなぁ。
ケアレスミスです。
で、ECHOしてみた。
@ECHO OFF
SET /A CNT=0
FOR /R パス %%I IN (*) DO (
SET /A CNT=CNT+1
)
ECHO %CNT%
こういうのを知ってると、結構使える場面が… ないか。
0 コメント:
::コメントを投稿する::