コマンドプロンプトでのバッチ処理についてお伺いします。
【環境】
Windows XP SP3
【要件】
特定ディレクトリにあるファイルにおいて、○○Byte以下のファイルを削除する。
上記の要件に則ってバッチファイルを作成する事となりました。全くの無知で検索した所、
下記のサイトに辿り着き、お知恵を拝借させて頂きました。
http://www.fpcu.jp/dosvcmd/bbs/log/delerase/4-00 …
--------------------
@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処理についてです)。
どなかたご教示頂けないでしょうか。
No.1ベストアンサー
- 回答日時:
SET FileAttrib=%~a1
上記は、FileAttrib変数に'dir /B'で出力されたファイルの属性を代入します。
以下の「バッチパラメータ・修飾子」を参考にしてください。
http://ykr414.com/dos/bat.html
IF NOT %FileAttrib:~0,1%==d (
上記は、FileAttrib変数の1文字目がd以外であれば次の処理を実行します。
(属性の1文字目がdとは、ディレクトリを意味します。)
文字列変数の1部分だけを抽出する方法については、以下のURLを参考にしてください。
http://www.atmarkit.co.jp/fwin2k/win2ktips/419ba …
つまり、バッチファイルの処理内容としては、ディレクトリ以外のファイル
のみに関してファイルサイズをチェックし、ファイルサイズが0バイトの場合
には削除する内容となります。
大変解りやすいご説明ありがとうございました。
どうやら当方はSETコマンドそのものを誤って理解していたようです。
ご説明頂きました内容で無事に理解する事が出来ました。要件自体は
すでに完遂しておりますが、ここから発展させてスマートな処理に
繋げたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTP 転送コマンド
-
mvコマンドについて
-
ls であるファイル以外を表示し...
-
サブディレクトリも含めて最新...
-
再起動後にフォルダが消えるのは?
-
Tera Termマクロでファイル送信
-
onedriveで同期解除をしたら、...
-
沢山のフォルダにあるファイル...
-
TXTファイルを上書き保存する前...
-
USBデータの消失
-
vlan internal allocation poli...
-
マイドキュメントのフォルダの...
-
共有しているファイルを削除し...
-
Excel VBAでほかのアプリケーシ...
-
VBScriptで日本語が変です
-
teratarmでコマンド入力すると...
-
全角スペースを文字として検索...
-
macOS10.6 アイコンが再起動時...
-
WindowsからSSHでサーバーにあ...
-
フォルダの上書きで、上書きさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ls であるファイル以外を表示し...
-
入力/出力エラーですというファ...
-
サブディレクトリも含めて最新...
-
作成したはずのファイルが表示...
-
Linuxである拡張子のファイルだ...
-
FTP 転送コマンド
-
特定の拡張子をもつファイルの...
-
再起動後にフォルダが消えるのは?
-
すべてのファイルに対してgrep...
-
mvコマンドについて
-
Linuxについて質問です。 シェ...
-
ftpコマンドで再帰的にフォ...
-
grepの使い方
-
caclsとは?
-
tarでのdat-tape出力を途中で止...
-
linux(UNIX) の grep で、ある...
-
wgetで既存の同名ファイルを常...
-
nkfで全ファイルを変換する
-
シェルスクリプト ファイル一...
-
バッチ処理について
おすすめ情報