Forfilesを使用して、年齢に基づいてファイルを処理する

コマンドをそのように処理する方が簡単な場合があるため、コマンドラインの魔法を知っていることは常に良いことです。

このガイドでは、 Forfiles Windows VistaおよびWindows 7のコマンド(更新:新しいバージョンのWindowsでも利用可能)。

Forfilesは、名前、ファイル拡張子、および経過時間に基づいてファイルを処理できます。たとえば、20日より古いディレクトリ内のすべてのドキュメント、または特定の日付以降に変更されたc: documents内のすべてのドキュメントを見つけることができます。

forfilesコマンドを処理オプションと組み合わせて、それらのファイルを削除したり、フィルターに一致するすべてのファイルのリストを作成したりできます。 forfilesコマンドを詳しく見てみましょう。

FORFILES [/ Pパス名] [/ Mサーチマスク] [/ S] [/ Cコマンド] [/ D [+ | -] dd / MM / yyyy]

説明:ファイル(またはファイルのセット)を選択し、そのファイルに対してコマンドを実行します。これはバッチジョブに役立ちます。

forfiles

パラメータリスト:

  • / Pパス名検索を開始するパスを示します。デフォルトのフォルダは現在の作業ディレクトリ(。)です。
  • / M searchmask searchmaskに従ってファイルを検索します。デフォルトのサーチマスクは '*'です。
  • / Sサブファイルに再帰するようにforfilesに指示します。 「DIR / S」のように。
  • / Cコマンド各ファイルに対して実行するコマンドを示します。コマンド文字列は二重引用符で囲む必要があります。デフォルトのコマンドは「cmd / c echo @file」です。

次の変数をコマンド文字列で使用できます。

  • @file-ファイルの名前を返します。
  • @fname-拡張子なしでファイル名を返します。
  • @ext-ファイルの拡張子のみを返します。
  • @path-ファイルの完全パスを返します。
  • @relpath-ファイルの相対パスを返します。
  • @isdir-ファイルタイプがディレクトリの場合は「TRUE」を返し、ファイルの場合は「FALSE」を返します。
  • @fsize-ファイルのサイズをバイト単位で返します。
  • @fdate-ファイルの最終更新日を返します。
  • @ftime-ファイルの最終変更時刻を返します。

コマンドラインに特殊文字を含めるには、文字の16進コードを0xHH形式で使用します(例:タブの場合は0x09)。内部のCMD.exeコマンドの前に「cmd / c」を付ける必要があります。

/ D日付 'dd / MM / yyyy'形式を使用して、指定された日付(+)以上、または(-)以下の最終更新日を持つファイルを選択します。または、最終更新日が(+)現在の日付+ 'dd'日以上、または(-)現在の日付-'dd'日以下のファイルを選択します。有効な「dd」日数は、0から32768の範囲の任意の数にすることができます。「+」は、指定されない場合、デフォルトの符号として使用されます。

/?このヘルプメッセージを表示します。このヘルプファイルは、forfiles /?コマンドを入力して開くことができます。コマンドプロンプトで。 Windows-Rを押し、cmdと入力してEnterキーを押し、Windowsでコマンドラインを起動します。

コマンド forfiles / P c: test / M .doc / S / D -10 ディレクトリc: testとそのすべてのサブディレクトリで、拡張子が.docで10日より古いファイルを検索します。

パラメータ/ pの後にディレクトリが続き、/ sは開始ディレクトリを定義し、/ sは検索にサブディレクトリを含め、/ mは入力された文字列に基づいてファイルとフォルダをフィルタリングし、/ Dは日付または期間を定義します。

/ Cコマンドは、さらに見つかったファイルを処理するために使用されます。たとえば、次のコマンドを実行するために使用できます。 / C 'cmd / c echo @fname'> test.txt 見つかった各ファイルの名前をエコーし​​、結果を同じディレクトリのtext.txtに保存します。

完全なコマンドは次のようになります forfiles / P c: test / M .doc / S / D -10 / C 'cmd / c echo @fname'> test.txt

別の可能性は、検索に一致するファイルを削除することです、これはコマンドで行われます / C 'cmd / c del @File

ただし、deleteコマンドを発行する前に、まず出力をテストして、正しいファイルのみが削除されていることを確認することをお勧めします。経験豊富なユーザーは、バッチファイルを作成して、forfileを定期的に実行することができます。