2016年12月29日

【PowerShell】フォルダ構成を保ったまま指定のファイルのバックアップを行う


単純にバックアップを行うには、Copy-Itemでフォルダごとコピーすればいいと思いますが、指定のファイルだけ、しかもフォルダ構成を保ったままコピーするには次のようにします。

PS C:\work> Copy-Item C:\work -Destination I:\Backup -Recurse -Filter "*.log" -Force
この例では、C:\work以下から拡張子が「log」のファイルをコピーしています。
ポイントは、Filterパラメータでコピーするファイルをフィルタリングしている点です。このFilterパラメータを使わないで単純にコピー元ファイルにワイルドカードで指定しただけではフォルダ構成を保ってのコピーはできません。

結果は、I:\Backup直下にフォルダ構成を保ったまま「work」フォルダが作られます。
ただし、拡張子が「log」以外のファイルはコピーされないので、「log」ファイルが存在しないフォルダは中身が空のフォルダだけが作成されます。

この方法は、例えばファイル名が同じでそれぞれ違うフォルダに入っているような場合に効果を発揮すると思います。




スポンサーリンク