DOSコマンドを使ってCドライブの中から大きなファイルを探すやりかたです。
forfiles -s -p e:\ -c “cmd /c if @fsize gtr 10000000000 echo @FDATE @FSIZE @PATH”
オプション | 内容 |
@file | ファイル名(拡張子も含む) |
@fname | 拡張子無しの基本ファイル名部分 |
@ext | 拡張子 |
@path | ファイルのフルパス名 |
@relpath | 開始フォルダーからのファイルの相対パス名 |
@isdir | フォルダー名ならTRUE、ファイル名ならFALSE。if内部コマンドと組み合わせ、「/C “cmd /c if @isdir==FALSE notepad.exe @file”」などのように利用する |
@fsize | ファイルサイズ(bytes単位) |
@fdate | ファイルの更新日 |
@ftime | ファイルの更新時間 |
更新時間で対象ファイルを絞り込む
/dオプションを使うと、ファイルの更新日付に基づいてファイルを抽出できる。例えば「/d -2008/12/31」とすれば2008年年末までの日付を持つファイルがマッチし、「/d -30」とすれば30日以上前のファイルのみがマッチする。
/d YYYY/MM/DD | 「YYYY/MM/DD」は年月日。指定された日付以降のもののみがマッチ。例:「/d +2009/01/01」なら2009年以降にマッチ |
/d -YYYY/MM/DD | 指定された日付以前のもののみがマッチ。例:「/d -2008/12/31」なら2008年かそれ以前にマッチ |
/d +NNN | NNNは日数を表す数字。本日より、NNN日以降のもののみがマッチ(未来の日付を持つファイルの抽出) |
/d -NNN | 本日よりNNN日以前のもののみがマッチ |
/dオプションで利用可能な日付/日数指定
「-」を付けるとその日以前のものがマッチし、「+」を付けるとその日以降のものがマッチする。省略すると「+」とみなされる。
この指定方法を使えば、例えば3カ月以上前の(更新日付を持つ)ファイルだけを削除するということが簡単にできる。
3カ月(90日)以上前のファイルの抽出
C:\Document\Folder1>forfiles /d -90
3カ月(90日)以上前のファイルの抽出し削除コマンドがでるか?確認
C:\Document\Folder1>forfiles /d -90 /c “cmd /c echo del @file”
3カ月(90日)以上前のファイルの抽出し削除(Echoなし)
C:\Document\Folder1>forfiles /d -90 /c “cmd /c del @file”
拡張子で検索
/S : サブフォルダも含める
/N : 行番号を付ける
/I : 大文字、小文字を区別しない
テキストのファイル名で「Windows」が付くテキストファイル名で検索
dir /b /S *.txt | findstr /N /l /S “Windows”