仕事を効率化するヒント

仕事の効率化のヒントと役に立ったビジネス書など

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日以前に編集されたファイルを対象にします
――――――――――――――――――――――――――☆



 

■同じテーマの記事

PC環境のレビューをする

以前はハードディスクの信頼性が低かったため、よく故障しました。イマドキのPCは、故障する確率が低くなってはいますが、やっぱり物理的に動作しているものは、劣化したり故障したりします。仕事において、社内のシステム管理をしている関係上、そういうところに敏感なのかもしれません。なので、過去記事常にバックアップを作っておくバックアップなどで書いたように、同じデータをあちこちに持っています(たいていは5箇所くらいなのですが、さすがにこれはやり過ぎ、という自覚はあります..

PC環境のレビューをする

以前はハードディスクの信頼性が低かったため、よく故障しました。イマドキのPCは、故障する確率が低くなってはいますが、やっぱり物理的に動作しているものは、劣化したり故障したりします。仕事において、社内のシステム管理をしている関係上、そういうところに敏感なのかもしれません。なので、過去記事常にバックアップを作っておくバックアップなどで書いたように、同じデータをあちこちに持っています(たいていは5箇所くらいなのですが、さすがにこれはやり過ぎ、という自覚はあります..

デスクトップからワンドライブフォルダにアクセスする

Windowsを使おうとするとマイクロソフトにサインアップされるように促され、勝手に OneDrive がくっついてきます。せっかくあるものなので、使わないと損。というか、「骨までしゃぶりたい」のが貧乏人のサガなので、徹底的に使いまわすことにしています。OneDrive に入れるデータOneDrive は、データを上書きしても自動的に履歴バックアップを取っていてくれるので、よく変更するファイルはここにおいておくと、「間違えて上書きしちゃった」みたいなときに助..

forfilesの使い方

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

WIN+Rを多用する

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

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

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