.obj などを除くファイルをコピーする xcopy を実行しようとしています。excludes.txt ファイルに拡張子として .obj が含まれていると、Microsoft.Practices.ObjectBuilder.dll がコピーされません。.obj を削除すると、Microsoft.Practices.ObjectBuilder.dll が正しくコピーされます。ただし、これは他の dll では発生しません。
なぜこれが起こるのか誰にも分かりますか?
ありがとう!
レニク
.obj などを除くファイルをコピーする xcopy を実行しようとしています。excludes.txt ファイルに拡張子として .obj が含まれていると、Microsoft.Practices.ObjectBuilder.dll がコピーされません。.obj を削除すると、Microsoft.Practices.ObjectBuilder.dll が正しくコピーされます。ただし、これは他の dll では発生しません。
なぜこれが起こるのか誰にも分かりますか?
ありがとう!
レニク
ええ、xcopyはそのようにばかげています。
これを行う:
dir /b *.obj >excludes.txt
xcopy * /exclude:excludes.txt targetdir
ただし、これでも問題が発生することがあります。
たとえば、 practices.ob jというファイルがある場合、それはコピーされませんが、Microsoft のコピーにも失敗します。Practices.ObjectBuilder.dll _
便利なトリックは、dir で /s を指定すると、再帰とフル パスが得られることです。次に、xcopy でソース ディレクトリを完全に指定すると、excludes は最初から一致する必要があります。
dir /s /b *.obj >excludes.txt
xcopy c:\sourcedir\* /exclude:excludes.txt \targetdir
現在、Microsoft.Practices.ObjectBuilder.dll は、同じディレクトリに Microsoft.Practices.obj ファイルがある場合にのみコピーに失敗します。それを得る?
サブストリング .obj が Microsoft.Practices**.Obj**ectBuilder.dll という名前で見つかり、Windows では大文字と小文字が区別されないため、除外されるためだと思います。
いずれにせよ、 XCOPY は非推奨になったので、問題が修正されるとは思えません。ROBOCOPY を見てみましょう。これは Vista に組み込まれており、2003 および XPのリソース キットに含まれています。
答えは、次のように入力して取得できるものです。
xcopy /?
すなわち:
/EXCLUDE:file1[+file2][+file3]...
文字列を含むファイルのリストを指定します。各文字列は、ファイル内の個別の行にある必要があります。いずれかの文字列がコピーするファイルの絶対パスの一部と一致する場合、そのファイルはコピーから除外されます。たとえば、\obj\ や .obj などの文字列を指定すると、ディレクトリ obj の下のすべてのファイルまたは .obj 拡張子を持つすべてのファイルがそれぞれ除外されます。