Excludeの基本
Exclude(除外)の例ですが、Include(含める)も同じ書式なので応用できます。
複数記述する場合は「;」で区切る
「;」で区切って複数記述できます。
\RECYCLER\;\System Volume Information\;
項目間は半角スペースを入れると少し見やすいです。
\RECYCLER\; \System Volume Information\;
ワイルドカード
以下のような感じでワイルドカードが使えます。
*.jpg;
複数記述
*.png; *.jpg; *.gif;
任意の文字:*
*は0文字以上の文字に一致するので、あってもなくても一致します。
以下の例では「abc」でも「abcdef」など、その後に文字列が続いても一致します。
abc*
任意の1文字:?
数字でもアルファベットでも任意の1文字に一致します。
「??」とすると、2文字の何かです。
以下の例だと、「AAA-1」でも「AAA-b」でも一致します。
AAA-?
いずれかの文字:[]
[]のカッコ内に列挙した文字のいずれかです。
以下の場合は「a」か「b」か「c」のいずれかという意味です。
[abc]
いずれかの文字以外:[!abc] または [^abc]
[!abc] または [^abc] など、[]内の文字列の先頭に「!」か「^」が開始していると、それらの文字以外に一致します。
範囲指定:[a-z] や [0-9]
a~zまでのいずれか1文字
[a-z]
0~9までのいずれか1文字
[0-9]
エスケープとフォルダ指定([]を含むファイル・フォルダ)
[TEST] AAA のようにカッコを含んだファイル・フォルダの例です。
[]は[0-9]とすると0~9の文字、[a-z]とするとa~zの文字という意味を持つので[]はそのまま使えません。
以下のようにすると良さそうですが、これは「T」「E」「S」「T」のいずれかで構成された文字で始まるフォルダという意味になります。
このため TEST5 などのフォルダには一致しますが [TEST] AAA には一致しません。
[TEST]*\
[ や ] をエスケープしよう!と以下のようにするとエラーになります。
FastCopyでは「\」でのエスケープは [] の中で有効なためです。
\[TEST\]*\
この場合は以下のようにします。
[\[]TEST[\]]*\
[]の中で「\」でのエスケープが可能なため、\でエスケープした文字は[]で囲えばOKという事です。
# 以下のカッコ開始は [ # こうします [\[]
# 同様に以下のカッコ閉じは ] # こうします [\]]
以下のようにすると、[]内でエスケープしているのでエラーは出ませんが、\[、A、\]、のいずれかで構成されたファイル・フォルダという意味になるので注意します。
[\[A\]]
「\」はフォルダ関連でも使用します。
以下は「AAA」というフォルダです。
\AAA\
先頭の「\」を外すとサブディレクトリにも一致します。
AAA\
フォルダの場合は末尾に「\」をつけるという感じです。
ファイルの除外
ファイル名そのものを指定
Thumbs.db;
ワイルドカードで指定
*.pdf; *.txt; *.jpg; *.jpeg; *.png; *.gif; *.eml;
r00、r01、r02、r03、r04…r09という拡張子を指定(先頭が0の2桁数字)
*.r0[0-9];
r01、r01、r02…r10、r11…r99という拡張子を指定(2桁数字)
*.r[0-9][0-9];
先頭が「1」「2」「3」のいずれかで始まる2桁の数字
10、21、35などに一致し、41などの先頭が1,2,3以外の場合は一致しません。
*.[123][0-9];
AAAというフォルダ直下にある拡張子7zを指定
AAA\*.7z;
AAAフォルダ内のサブフォルダ内にある7zを指定
AAA\*\*.7z;
フォルダの除外
$RECYCLE.BINフォルダの除外
末尾に「\」をつけます。
サブフォルダにも一致させたい場合は先頭の「\」は外し、「$RECYCLE.BIN\」などとします。
$RECYCLE.BIN\
NG:以下のようなものは無視されます(フォルダ\*)
AAA\*
全てのサブフォルダ
全てのサブフォルダが除外されるので直下のみが対象になります。
*\
フォルダ
先頭が「\」で始まる場合は「前方一致」なので「直下のフォルダ」という意味になり、サブフォルダには一致しません。
以下だと「Source」のフォルダの直下にある「AAAで始まるフォルダ」という意味です。
\AAA*\
先頭の「\」を外すとサブディレクトリにも一致します。
AAA\
ワイルドカードの例です。
サブフォルダも含めた「DATA2020」や「DATA2021」などのフォルダに一致します。
DATA*\
フォルダ名にスペースがあってもOKで、サブフォルダも含めた「DATA 2020」や「DATA 2021」などのフォルダに一致します。
DATA *\
AAAフォルダ内にあるサブディレクトリ全て
AAA*\*\;
その他の例
ドライブのコピーでよく使う例
ドライブのコピーをする場合は以下のようなものを基本にして、他にも除外したいものがあれば追記して使っています。
よくみたら、もう少しシンプルに記載できますね。
\WindowsImageBackup\; $RECYCLE.BIN\; \RECYCLER\; \System Volume Information\; \Recovery\; \OneDriveTemp\; \MapData\; \found.000\; \found.001\; \found.002\; \Config.Msi\;
Include
IncludeもExcludeと書式は同じです。
Includeが空の場合は全てのファイル・フォルダが対象になりますが、Includeを1件でも入れると指定したもの以外は除外されます。
例えば以下をIncludeに指定すると、拡張子rar以外は全て除外されます(rarが含まれるフォルダはコピーされます)
*.rar;
Exclude(除外)とInclude(含める)の併用
ExcludeとIncludeを併用することで、「~は含めるけど、~は除外する」ことができます。
以下の例では、「TEST」で始まるフォルダのみを含めますが、拡張子rar、7z、zip、lzhは除外します。
Include
TEST*\;
Exclude
*.rar; *.7z; *.zip; *.lzh;
ExcludeとIncludeはどちらが優先?
試したところ、Include(含める)に一致した場合でも、Exclude(除外)に一致した場合はコピー対象になりませんでした。
このため、不要なファイルがコピーされることはありませんが、バックアップなどの場合は必要なファイルが除外されてしまっていないか確認しておきましょう。
バッチファイルの例
ドライブ同士のコピー例です。
@rem コピー元 set srcpath="J:\" @rem コピー先 set destpath="O:\" @rem FastCopyのパス set fastcopy="J:\PortableSoft\FastCopy\FastCopy.exe" @rem 除外指定 set fastcopyJogai="\WindowsImageBackup\; $RECYCLE.BIN\; \RECYCLER\; \System Volume Information\; \Recovery\;" @rem コピー実行 %fastcopy% /cmd=update /reparse /speed=full /verify /no_ui /exclude=%fastcopyJogai% %srcpath% /to=%destpath%
コピー先の指定は注意が必要で、ドライブ同士の場合は両方とも\で終わります。
set destpath="O:\"
しかし、コピー先がフォルダの場合は末尾\をつけません。
上記の例で説明すると、「J」ドライブがそっくり「O」ドライブの「folder」内へコピーされます。
set destpath="O:\folder"
コピー先がフォルダの場合に、末尾に以下のように「\」を付けた場合、
set destpath="O:\folder\"
以下のように二重にフォルダができてしまうので注意してください。
O:\folder\folder
コメントフォーム