13

Windows XP Professional の xcopy で奇妙な問題が発生しました。ソースとしてファイルのみを指定しているので、それがばかげた質問かどうかはわかりません。他の動作を期待する必要がありますか? これです:

を使用してxcopy <src> <dest> /s/yいます。

<src>=C:\sourcefolder\a\b\c\d\something.java

<dest>=C:\destinationfolder.

はファイルをコピーしますが、内部xcopyにディレクトリ構造を作成しません 。\a\b\c\d\C:\destinationfolder

私が欲しいC:\destinationfolder\a\b\c\d\something.javaのは

私が得るものはC:\destinationfolder\something.java


  1. ターゲットフォルダーC:\destinationfolderに を指定して、宛先フォルダーで実行しようとしました.
  2. 上記のターゲットなしで試してみました

xcopy繰り返し呼び出すスクリプトがあるためC:\destinationfolder\many java files、ディレクトリ構造がありません。

A.はいxcopy /?、すべてのオプションを確認しました

B./T空のディレクトリ構造も作成しません

a\b\c\d\C. ソース フォルダに移動して実行できないxcopy . <dest>

4

6 に答える 6

8

アップデート

の使用に関する以前の回答を削除しましたROBOCOPY。を使用して、次のことを行うと思いますXCOPY

フォルダー構造が次のようになっていると仮定します。

SOURCE = C:\MyJavaStuff\A\B\C\D\something.java
DEST   = C:\MyDestination

XCOPY次のように実行します。

XCOPY C:\MyJavaStuff\something*.java C:\MyDestination /S /E

に注意し*てくださいsomething*.java

于 2011-11-29T12:13:49.650 に答える
3

問題は、ソースにコピーするファイルを指定していることです。この場合、xcopyはフォルダ構造を作成しません。ただし、xcopyへの呼び出しをに変更した場合

xcopy *.java C:\myfolder /s/y

.javaファイルとフォルダ構造もコピーされます。この呼び出しを希望どおりに機能させるには、ワイルドカードを指定する必要があります。特定のファイルのみをコピーする場合は、xopyの呼び出しを調整する必要があります。例:

xcopy something.jav* C:\myfolder /s/y

編集

別のコマンドからコピーするファイルのリストを取得すると言います。このファイルのリストをテキストファイルで出力できる場合は、次のようにすることができます。

FOR /F "tokens=* delims=," %F in (d:\test\list.txt) DO xcopy src\%~nxF* .\dest /S /Y

このコマンドは、テキストファイル(この場合は "d:\ test \ list.txt")を読み取り、すべての行を読み取り、ファイルごとにxcopyを実行し、ファイル名の最後にワイルドカードを追加して確認します。フォルダ構造を作成します。

私はここでそれを仮定しています:

  • ファイル名(および場合によってはパス)のみを含むテキストファイル内のファイルのリストを取得できます
  • ソースフォルダ(この例では「C:\ sourcefolder」、フォルダ構造「a \ b \ c \ d」を知っている必要はありません)を知っていて、FORコマンドで使用できます。

次のフォームを使用することもできます。

FOR /F "tokens=* delims=," %F in ('cmd') DO xcopy src\%~nxF* .\dest /S /Y

ここで、cmdは、コピーするファイルのリストを生成するために使用するコマンドに置き換える必要があります。

このコマンドをバッチファイルで使用する場合は、(および)にFOR置き換える必要があることに注意してください。%F%%F%~nxF*%%~nxF*

于 2011-11-29T15:18:20.833 に答える
2

xcopy スイッチを調べたところ、/T でディレクトリ構造をコピーできますが、空のディレクトリはコピーされませんが、/E で上書きできます。したがって、コマンドは次のようになります。

xcopy C:\sourcefolder\a\b\c\d\something.java C:\destinationfolder /T /E /S /Y

お役に立てれば!

于 2011-11-30T09:32:58.450 に答える
1

XCOPYを取得するには、複製C:\destinationfolder\a\b\c\d\something.javaする量を知る必要がありますC:\sourcefolder\a\b\c\d\something.java

以下を使用できます。

C:
cd \sourcefolder
XCOPY something.java* C:\destinationfolder\ /S

これには、 underの他の一致だけでなく、C:\sourcefolder\oops\something.javatoにもコピーするという副作用があることに注意してください。C:\destinationfolder\oops\something.javasomething*.javaC:\sourcefolder\

于 2011-11-30T21:58:53.840 に答える