コマンドプロンプトでのバッチ処理についてお伺いします。
【環境】
Windows XP SP3
【要件】
特定ディレクトリにあるファイルにおいて、○○Byte以下のファイルを削除する。
上記の要件に則ってバッチファイルを作成する事となりました。全くの無知で検索した所、
下記のサイトに辿り着き、お知恵を拝借させて頂きました。
http://www.fpcu.jp/dosvcmd/bbs/log/delerase/4-0062.html
--------------------
@ECHO OFF
FOR /F %%F IN ('dir /B') DO ( CALL :CheckFile %%F )
EXIT /B
:CheckFile
SET FileAttrib=%~a1
IF NOT %FileAttrib:~0,1%==d (
IF %~z1 == 0 (
ECHO "%1" はファイルサイズが 0 なので削除します。
REM DEL %1
)
)
EXIT /B
--------------------
いくつかの文献を読み、大方の内容と要件に沿った処理を行えるまでには至ったのですが、
どうしても6-7行目を理解する事が出来ません(IF処理では無く、FileAttribの行り、SET処理についてです)。
どなかたご教示頂けないでしょうか。
お礼
大変解りやすいご説明ありがとうございました。 どうやら当方はSETコマンドそのものを誤って理解していたようです。 ご説明頂きました内容で無事に理解する事が出来ました。要件自体は すでに完遂しておりますが、ここから発展させてスマートな処理に 繋げたいと思います。