2011-07-19 13 views
2

単一のバッチファイルでこれを行う最善の方法が不思議です。私はC:\ Program \ Fooというフォルダを持っていて、fooの中のテストフォルダ以外のすべてのフォルダを取得したいと思っています。そして、D:\ fooにD:\にxcopyしてD:\ fooにあります。 。特定のフォルダ以外のディレクトリ内のすべてのフォルダを取得するためのバッチファイルループ

各フォルダをループして含まない特定の名前を確認する方法はありますか?

/除外使用すると、私はそれに

答えて

1

@ECHO OFF 
FOR %%F IN ("%TEMP%\exclude.txt") DO SET tmpf=%%~sF 
ECHO Testing>%tmpf%\exclude.txt 
XCOPY sourcedestination /EXCLUDE:%tmpf%\exclude.txt other options 

注:XCOPYはのパス区切り文字として二重引用符を認識しません。 /EXCLUDEオプションを使用し、パスをスペースで指定する方法はありません。これは、Windows XPシステムで問題になる可能性があります。この制限は、元のパスを短い名前のみで構成された対応するパスに置き換えることで回避できます。これは上記のスクリプトのFORループが%TEMP%フォルダに対して何をするかです。

0

を「テスト」と、余分なテキストファイルが必要になるわけですが、あなたはROBOCOPYを使用することはできますか?

ROBOCOPY C:\Program\Foo D:\ * /E /XD Test 
  • /Eコピーのサブフォルダとファイルのディレクトリ
0

がEXCLUDEオプションを使用し、そのファイルにあなたの除外を入れ

  • /XD除外。そうすれば、ディレクトリ全体を除外することができます。

    http://www.pcreview.co.uk/forums/using-xcopy-backup-can-exclude-some-directories-t489674.html

    ます。xcopy "C:\ドキュメントと設定" "I:\ DocumentsとSettings \"/S/D /EXCLUDE:c:\a.txt

    A.TXTは

    が含まれています

    \ temp \ \一時インターネットファイル\

    短いDOSファイル名を使用する必要がある場合があります。

    あなたが(一時的なフォルダを使用して、それがある)、一時除外ファイルを作成することができなかった理由を私は見ていない
  • 関連する問題