CAT [pattern]* [option]*
パターンに基づいてディレクトリを検索し、該当するファイル名を出力する。
パターンを複数した場合には、それらのパターンを先頭から順に処理する。
パターンは、パスとワイルドカード指定を連結したものである。
ディレクトリを単独で指定すると、ワイルドカードは*.*を指定したものとみなされる。
特にディレクトリであることを明確にするには、最後に\を付加すれば良い。
ワイルドカード指定のみを指定すると、ディレクトリはカレントディレクトリとなる。
パターンを省略するとカレントディレクトリで、ワイルドカードは*.*となる。
残念なことに、システムのAPIがロングファイル名/ショートファイル名の双方を見て出力するので 厳密にパターンが守られてはいない。例えば*.htmを指定すると、*.htmlファイルも出力される(ショートネームが*.htmだから)。 大目に選ばれるので、気になる場合は、後ろでファイル名をチェックしなおすか、正規検索オプションを指定すると良い。
パターン指定がないときに、何もしないことを示す特殊な指定が出来る(-Q)。
これはディレクトリリストなどに基づいて検索する際に、リストが空ならば、
何も出力しないことを保証するために付けられた機能である。
属性によって出力を限定できる(-A=)。
ディレクトリを再帰的にサブディレクトリを含めて検索できる(-R)。
検索対象をファイルの変わりにディレクトリを指定できる(-P)。
ファイル名の正規検索ができる(-E,-C)
正規検索の対象は、filename.expの部分で、パターンによる検索で見つかったファイル名に対して、
さらに、正規検索を行う。
ファイル名を絶対パスで出力することが出来る(-A)。 また、ファイル名のほかに、ファイルサイズ(-S)、日付(-D)、時間(-T)、属性(-ATTR)MSDODでの短縮ファイル名(-M)を出力できる。 出力は以下の形式。
FILENAME 【TAB SIZE】【TAB TIMESTAMP】【TAB DATE】 【TAB TIME】 【TAB ATTR】【TAB MSDOS_NAME】 EOL
D | ディレクトリ |
N | 通常のファイル |
R | 読み取り専用 |
H | 隠しファイルまたは隠しディレクトリ |
S | システムファイル |
A | アーカイブファイルまたはアーカイブディレクトリ |
C | 圧縮ファイルまたは圧縮ディレクトリ |
T | テンポラリファイル |
O | ファイルのデータが別のオフラインの記憶装置に移されている |
出力行の形式を置換文字列で指定できる(-U)。
このとき、出力に関するオプション(-A,-ATTR,-D,-F,-LARGE,-M,-S,-SMALL,-T,-PH,-PT,-QD,-QS)は無効になる。
ドライブ全体にcatを使用することは、避けたい。
「ゴミ箱」や、NTFSで使用する「System Volume Information\」も処理対象になってしまうからである。
-A
-ATTR
-A=限定文字列
[
属性文字[+|-]
]*
+
があると設定されている属性、
属性文字の後ろに-
があると解除されている属性をあらわす。-C[I|A|K|P]*:str
-E
と異なり、細かくオプションを指定できる。:
の前に文字の組み合わせで指定する。
I | 全角半角の英字の大文字、小文字を区別しない。 |
A | 半角英字の大文字、小文字を区別しない。 |
K | 全角英字の大文字、小文字を区別しない。 |
P | 検索対象をフルパス名とする。指定しなければパス名を除いた部分。 |
I
、A
、K
は排他的である。
つまり、最後に指定したものが有効となる。
-D
-DT
-Estr
-F
-G
-Ipattern
-Q
が指定されたことになる。
-LARGE
-M
-R
-S
-SMALL
-T
-TM
-Ofilename
-P
-PF
-PHprefix
-PTpostfix
-Q
-QD
"
)で囲む
-QS
'
)で囲む
-Uargstr
%0; | 出力行番号 |
%1; | (相対パス付)ファイル名 |
%2; | ファイルサイズ |
%3; | 日付(YYYY-MM-DD) |
%4; | 時間(HH:MM) |
%5; | 属性 |
%6; | タイムスタンプ(tsexprのfiletime()と同じ形式) |
%7; | 日付(YYYY/MM/DD) |
%8; | 時間(HH:MM:SS) |
いくつかの用例を挙げます
cat | カレントフォルダーのすべてのファイル |
cat *.txt | カレントフォルダーの拡張子「.txt」ファイル |
cat e:\app\*.txt | 「e:\app」の拡張子「.txt」ファイル |
cat e:\app | 「e:\app」のすべてのファイル |
cat -p | カレントフォルダーのフォルダー |
cat -r | カレントフォルダー以下サブフォルダーを含むすべてのファイル |
cat c:\app -i*.txt | 「c:\app」の拡張子「.txt」ファイル |
cat -e^.*\.txt$ | カレントフォルダーの拡張子「.txt」ファイル。正規検索を使った。 |
Ver 1.02 | 2015/01/29 | -DT、-TM、-G オプション追加 |
Ver 1.01 | パスのエラーチェック強化 | |
Ver 1.00 | 初版 |