特定のフォルダ(.svn など)以外をコピーする方法【Windows】

特定のフォルダ(.svn など)以外をコピーする方法【Windows】

特定のフォルダ(.svn など)以外をコピーする方法
特定のフォルダを除いてコピーしたい場合、Windowsのコマンドプロンプトの機能を使用します。

フォルダコピーした後に削除するよりも不要なフォルダやファイルを除いてコピーした方が、作業効率が良くなります。

TortoiseSVNをインストールできない端末で、ネットワークフォルダ上のSubversion管理フォルダから「.svn」フォルダ以外をコピーする必要があったため、今回説明する方法でコピーしました。

コピーした後に削除するより、5倍くらい早いです。(体感)

通常のファイルコピー時も流用可能です。

特定のフォルダ(.svn など)以外をコピーする方法

xcopyを使用する際に、/excludeを指定することで、特定のフォルダが除外できます。

実装例

実装例は次のとおりです。

「D:\test」のフォルダに「testcopy.bat」として、次の内容を記述しています。

@echo off
echo \.svn\ > D:\test\jogai.txt
xcopy D:\test\copy_moto D:\test\copy_saki /exclude:D:\test\jogai.txt /D /S /E /H /C /Y /R /I
del D:\test\jogai.txt

 

1行ずつ解説していきます。

1行目

@echo off

echo offすることで、コマンドプロンプト上にコマンドの内容や結果を表示しなくします。

先頭に「@」をつけてあるのは、「echo off」自体をコマンドプロンプト上に表示されないようにするためです。

この行の記載がない場合は、コピーするファイル名が1件ずつコマンドプロンプト上に表示されます。

2行目

echo \.svn\ > D:\test\jogai.txt

除外したいファイルである.svnD:\test\jogai.txtに出力しています。
次の画像にあるテキストファイルを作る処理になります。
xcopy_svn

3行目

xcopy D:\test\copy_moto D:\test\copy_saki /exclude:D:\test\jogai.txt /D /E /H /C /Y /R /I

xcopy 【コピー元】 【コピー先】 /exclude:【除外する一覧】 【xcopyのオプション】
コピー元     :D:\test\copy_moto
コピー先     :D:\test\copy_saki
除外する一覧   :D:\test\jogai.txt
xcopyのオプション:/D /E /H /C /Y /R /I

4行目

del D:\test\jogai.txt

2行目で一時的に作った「D:\test\jogai.txt」を削除しています。

まとめ

xcopy/excludeを指定することで、特定のフォルダ(ファイル)を除外したコピーができる。

 

大量のファイルをコピーする必要がある場合は、コピー時間が大きく変わってきます!

コマンドプロンプトカテゴリの最新記事