2017年02月27日

forfilesの使い方




もう使わなくなったバックアップファイルは、削除しておくとハードディスクの容量にも、精神衛生にもちょっと良いかも。
ただし、使う可能性のあるファイルを削除はしたくないので、一定期間以上編集しなかった、という条件で削除すると便利かと。

これを実現するコマンドが forfiles。
本日は、この forfiles の説明。

■パラメータ一覧

☆――――――――――――――――――――――――――
FORFILES [/P パス名] [/M 検索マスク] [/S]
[/C コマンド] [/D [+ | -] yyyy/MM/dd | dd]

パラメーター一覧:
● /P パス名
検索を開始するパスを示します。
 既定のフォルダーは現在実行中のディレクトリ (.) です。

● /M 検索マスク
検索マスクによってファイルを検索します。
既定の検索マスクは '*' です。DOS で一般的に使うワイルドカード文字が使えます

● /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 日付
最終更新日が指定された日かもしくはそれ以降 (+)、または指定された日またはそれ以前 (-) であるファイルを "yyyy/MM/dd" 形式を使って選択します。または、最終更新日が現在の日にちより "dd" 日あと、もしくは "dd" 日前であるファイルを選択します。有効な "dd"値は 0 から 32768 の間です。
指定がない場合は、"+" が既定で使用されます。

● /?
ヘルプまたは使用法を表示します。
――――――――――――――――――――――――――☆


■やってみる

ちょっとコマンドの説明だとわかりにくいので、一定期間以上編集されていない txt ファイルを削除する、というお題でやってみます。

◇――――――――――――――――――――――――――
注意:以下のコマンドを実行するとファイルが削除されます
もし削除されてしまっても、責任はおいかねますので自己責任でお願いします。

もし試しにやって見るときには、

 cmd /c del ...

の代わりに

 cmd /c echo hear is ...

みたいに、薬にも毒にもならないコマンドに書き換えてください。
――――――――――――――――――――――――――◇



たとえば、現在のフォルダ以下にいろんなファイルがあるとして、

 forfiles /d -2016/12/12

は、2016/12/12 以前のファイルを一覧できます。

 forfiles /d -2016/12/12 /m *.txt

は、2016/12/12 以前の txt ファイルが一覧されます。

さらに、このファイルを削除しようと思ったら

 forfiles /d -2016/12/12 /m *.txt /c "cmd /c del @file"
 注意:このコマンドはファイルを削除します
 ※お試しなら、"cmd /c echo hear is @file" にしておいてください。

で削除されます。

バッチファイルで使うときには、現在のフォルダが希望のフォルダだとは限らないので、希望のフォルダ(ここでは c:\usr)をパラメータに加えておきます。

 forfiles /d -2016/12/12 /p c:\usr /m *.txt /c "cmd /c del @path"
 注意:このコマンドはファイルを削除します
 ※お試しなら、"cmd /c echo hear is @path" にしておいてください。

"@" 以降の部分が @file から @path に変わっていることに注意してください。
@file はファイルのパス名を含まないので、c:\usr\abc.txt が見つかっても、コマンドを実行するときには、@file だと

 cmd /c del abc.txt

にしかなりません。現在のフォルダが c:\usr ならこのコマンドは希望通りに機能しますが、別のフォルダが現在のフォルダであれば、これは期待通り機能しません。一方で、 @path を使うと

 cmd /c del c:\usr\abc.txt

が実行されるので、かならず期待どおりになります。

"cmd /c"はおまじないだと思ってもらえればいいです。
詳しく知りたい方は、"cmd.exe パラメータ"で検索してみてください。

■更新日付による絞込

現在時刻を基準に、今から14日(2週間ですね)より古いファイルを探し出すには、

 forfiles /d -14

です。/d の後に "-14" のように "-" つきで指定します。

他にも

☆――――――――――――――――――――――――――
 /d +yyyy/mm/dd
 yyyy年mm月dd日以降に編集されたファイルを対象にします

 /d +yyyy/mm/dd
 yyyy年mm月dd日以前に編集されたファイルを対象にします

 /d +nnn
 今日を基準として、nnn日以降に編集されたファイルを対象にします
 ※未来に編集されたファイルって…?
 
 /d -nnn
 今日を基準として、nnn日以前に編集されたファイルを対象にします
――――――――――――――――――――――――――☆



■同じテーマの記事

forfilesの使い方

もう使わなくなったバックアップファイルは、削除しておくとハードディスクの容量にも、精神衛生にもちょっと良いかも。ただし、使う可能性のあるファイルを削除はしたくないので、一定期間以上編集しなかった、という条件で削除すると便利かと。これを実現するコマンドが forfiles。本日は、この forfiles の説明。パラメータ一覧FORFILES [/P パス名] [/M 検索マスク] [/S] [/C..

WIN+Rを多用する

Windowsを使っていると、マウスはどうしても必要。でも以前の記事で書いたように、キーボード主体で操作できるようになると、格段にPCの操作速度が上がります。ただし、自分の知っている人でも、多くの人がトライして挫折するのは、キーボード主体にした時に一時的に操作の速度が落ちて、イラッとすることです。ここで諦めてしまうと、操作速度は上がりません。それでも、我慢して使っていると、あるひ目にも留まらぬスピードで使えるようになっていて、同僚から「スムーズだね」とか「はやっ」って..

Cドライブの空き容量を確保する4:容量の大きなファイルを移動する

Cドライブの空き容量ってどのくらいありますか?私は、デスクトップPCはだいたい70%強、ノートPCは30%弱が現在の状況。WindowsはCドライブに頻繁にアクセスするので、この空き容量が減ってくると動作が遅くなります(SDメモリをCドライブに使っているものは別です)。システムの管理をしていると、割とそういうことに敏感になります。会社のサーバ類の目安は空き容量はすべてのドライブで30%以上に設定していて、それを下回ると不要なファイルを削除したり、ドライブの追加購入など..

フォルダの同期・バックアップ方法4:FireFileCopyを使って履歴バックアップする

最近の Windows ではあまりなくなりましたが、以前の Windows では、突然ファイルが破損して、何日もかけて作ってきたファイルが一瞬にしてパア、なんてことがよくありました。また、Windows のせいだけではなく、誤操作や誤判断でファイルを消してしまう、なんてことも時々あります。人間だからミスはするさ…、フッ………などと言ってみても、内心は呆然。という時のために、バックアップを作るようにしてます。ただ、手動でバックアップをす..

読書ジャンルごとにアプリを用意する

並行読書読書術で、多読のすすめの中に、並行読書を勧めているものが少なくありません。ようは、時と場合に応じて読む本を変えてやると、都合よく読むことができる、という方法。ビジネス書のように仕事に活かす読書は、忙しい人が、走りながら、時間の合間を縫ってするものです。通勤中はもちろん、昼休み、外出時の空き時間、入浴・食事中など、聖域を設けず読んでいきましょう。藤井孝一(著..

エクスプローラで所定のフォルダを開く

PCを使っていると、エクスプローラを立ちあげて、そのフォルダのファイルを操作するという事がよくありますよね。Windowsの場合、Win + Eでエクスプローラが立ち上がるので、これおぼえておくと便利です。特定のフォルダをすぐに表示するしかし、特定のフォルダをすぐに表示するのは簡単ではありません。たとえば、デスクトップを表示するにはC:\Users\xxxxx\Desktopへ移動する必要があるのですが、..

NexusFilerの使い方(コマンドライン起動編)

2画面ファイラー NexusFile の便利な機能をご紹介。以前の記事ファイラーNexusFileNexusFileその1(設定編)NexusFileその1(設定)NexusFileその2(ショートカット)NexusFileその3(便利機能)の続きです。コマンドライン機能を使うコマンドライン機能というのは、ディフォルト設定では "/" キーで起動できる、1行だけのダイアログボックスです。これは何をするもの..

コマンドプロンプトを使う

前回の記事、>の続きで、「コマンドプロンプトを便利に使う」方法のご紹介ただし、前回同様、たかがブログ記事ごときで体系的に使い方が理解できるものではありません。やっぱり整理した本を読むのが一番です。Web上でもいろいろ便利な紹介サイトがありますが、やっぱり情報が偏ってしまいます。ちょっとしたリファレンスには便利ですが、初めて取り組むなら全体をちゃんと説明した本を買いましょう。「生兵法は怪我の元」になりかねませんので。コマンドプロンプトを使うコマンドプロンプトはその..

CUI(キャラクタユーザインタフェース)を使うと効率が上がる

パソコン(Windows)を操作する方法として、・GUIグラフィカルユーザインタフェース・CUIキャラクタユーザインタフェース と言われる2種類の方法があります。別の記事キーボードでWindowsを制御する考える速度でパソコンに書くで書いたように、マウスを使うGUIよりキーボードで入力するCUIのほうが劇的に操作速度が早くなります。Windowsをキーボードショートカットで使うことはもちろん、アプリを立ち上げ..

thumbs.txt

Windowsエクスプローラーを使っていると気が付きませんが、WindowsはそれぞれのフォルダにThumbs.dbという隠しファイルを作成しています。このファイルはエクスプローラーで表示するときに使われるアイコンなどが保存されているのですが、別になくても構いませんし、フォルダの同期をさせるときに、同期先にも同じファイルが有ったりして以外にじゃまになります。私のようにファイラーを使っているとこのファイルが表示されてしまって見苦しい。ということで、Thu..

UWSCをバッチ化する方法

本日はちょっとマニアックな内容です。Windowsの操作を自動化する以前の記事「自動化する」でUWSCをご紹介しました。この UWSC は、定型的な作業を自動化するのには、すごく便利なのですが、(当然ながら)拡張子が uws というスクリプトファイルが必要です。Windowsの設定で、uws という拡張子の時には、uwsc を起動するようにしておけばいいのですが、パラメータを渡したいときには、これがネックになります。たとえば、あるフォル..





posted by 管理人 at 13:31| Comment(0) | TrackBack(0) | PCアプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック