ワイルドカードを使用して「%~dp0」のサブフォルダから jpg ファイルを Xcopy します

ワイルドカードを使用して「%~dp0」のサブフォルダから jpg ファイルを Xcopy します

デスクトップに 1 つのフォルダーがありTest、このフォルダー内に と の 2 つのフォルダーがありますWorkingFolder\BilderStation 1したがって、構造は次のようになります。

Test\WorkingFolder\Bilder
Test\Station 1

(メイン フォルダ)内にバッチ ファイルがあります。からにファイルをTest\移動またはコピーできるようにする必要があります。 このために、 を使用しています。.jpgTest\Station 1Test\WorkingFolder\BilderXCopy

問題は、バッチ ファイルは、構造が似ているもののパス名が異なる複数のフォルダーで使用されるため、 のコピー元フォルダーの名前を使用できないことですXCOPY。そのため、代わりに以下を使用しようとしています%~dp0
画像の説明

私のコードは次のとおりです:

md WorkingFolder\Bilder
xcopy /s "%~dp0\*.jpg"  WorkingFolder\Bilder\

私が書こうとしているのは、.jpgのサブフォルダ内%~dp0%~dp0つまりバッチ ファイルがあるフォルダと、そのサブフォルダ内の画像があるフォルダ内のすべてのものをコピーしStation 1、 に置くことですWorkingFolder\Bilder

問題は、ファイルがコピーされないことです。Station 1でを直接参照した場合にのみ、ファイルがコピーされます。 のすべてのサブディレクトリを参照でき、 のサブディレクトリを参照できないようにXcopyする必要があります。%~dp0%~dp0\example

私を助けてください!

答え1

私はそれを信じていますxcopy次のエラーが報告されます:

Cannot perform a cyclic copy

これは、宛先ディレクトリがソース ディレクトリ ツリー内にあるために発生します。

使ってみるのもいいでしょうrobocopy指示代わりに、宛先ディレクトリを除外します。

robocopy "%~dp0." "%~dp0WorkingFolder\Builder" "*.jpg" /S /XD "%~dp0WorkingFolder"

関連情報