0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【バッチ】読み取り専用以外のファイルを対象に処理したい(再帰あり)

Last updated at Posted at 2024-10-09

やりたいこと

フォルダ内の全ファイルを再帰的に処理したいが、読み取り専用は避けて(読み取り専用以外を)処理したい。
/Aオプションを変更すれば、隠しファイル以外を処理することも出来そうです。

方法:FORコマンドを使用する

FOR /F "delims=" %i IN ('DIR /A:-D-R /B /S *.*') DO ECHO "%i"
  • FORコマンド
    • /Fオプション:テキストファイルやコマンドのトークンを処理対象とする
    • delims:トークンの区切り文字。"deloms="は区切り文字なしの意味で、半角スペースを含んだパスでも動作するように指定している
  • DIRコマンド
    • /Aオプション:指定した属性のファイルのみ表示
      • :D:ディレクトリ(:-Dはディレクトリではないの意味)
      • :R:読取り専用ファイル(:-Rは読み取り専用ではないの意味)
    • /Bオプション:ファイル名のみ出力
    • /Sオプション:再帰的に処理
  • 補足
    • 本コマンドをバッチファイルとして実行する場合、変数名の%を1つ増やして、%%iにする必要があります

使用例

@ECHO OFF

FOR /F "delims=" %%i IN ('DIR /A:-D-R /B /S *.py') DO Black "%%i"

PAUSE

PythonのフォーマッターBlackを呼び出しています。
バッチファイルとして実行するため、変数を%%iに変更しています。

引用元

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?