web-dev-qa-db-ja.com

xcopy file、rename、抑止 "xxxはファイル名を指定しますか?"というメッセージ

これは非常に単純なようですし、 適切なフラグ を見逃しているだけかもしれませんが、あるコマンドで、あるディレクトリから別のディレクトリにファイルをコピーして、コピー先ディレクトリで名前を変更する方法これが私のコマンドです:

if exist "bin\development\whee.config.example"
  if not exist "TestConnectionExternal\bin\Debug\whee.config"
    xcopy "bin\development\whee.config.example"
          "TestConnectionExternal\bin\Debug\whee.config"

毎回次のようなメッセージが表示されます。

TestConnectionExternal\bin\Debug\whee.configは、ターゲット上のファイル名またはディレクトリ名を指定しますか(F =ファイル、D =ディレクトリ)。

このプロンプトを抑制したいのですが。答えは常にFです。

380
Sarah Vessels

xcopyを使用せず、代わりにcopyを使用してください。この問題は発生しません。

xcopyは通常、複数のファイル/フォルダの再帰的コピーを実行するとき、またはそれが提供する検証/プロンプト機能が必要なときに使用されます。単一ファイルコピーの場合、copyコマンドは問題なく動作します。

206
LBushkin

私が使う

echo f | xcopy /f /y srcfile destfile

それを回避するために。

610
Arnshea

別のオプションは、宛先ワイルドカードを使用することです。これは、移動元と移動先のファイル名が同じ場合にのみ機能することに注意してください。そのため、これはOPの特定の例を解決するものではありませんが、共有する価値があると思いました。

例えば:

xcopy /y "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\*" 

ファイルまたはディレクトリを指定せずに、コピー先ディレクトリにファイル「whee.config.example」のコピーを作成します。

更新 :@chapluckで述べたように:

"* ""[newFileName].*"に変更することができます。それはファイル拡張子を保持しますが、名前を変更することを可能にします。もっとハッキー:拡張子を変更するための"[newFileName].[newExt]*"

165
zippycoder

XCOPYには文書化されていない機能があります。あなたが使用することができます:

xcopy "bin\development\whee.config.example" "c:\ mybackup\TestConnectionExternal\bin\Debug\whee.config *"

今日だけテストしました。 :-)

88
ienaxxx

http://technet.Microsoft.com/ja-jp/library/bb491035.aspx にアクセスするだけです。

これが主な問題です。「... Destinationに既存のディレクトリが含まれておらず、 がバックスラッシュ ()で終わっていない場合、次のメッセージが表示されます。

destinationはターゲット上のファイル名またはディレクトリ名を指定しますか(F =ファイル、D =ディレクトリ)?

このメッセージを表示しないようにするには、/ iコマンドラインオプションを使用します。これにより、ソースが複数のファイルまたはディレクトリの場合、xcopyは宛先をディレクトリと見なします。

少し時間がかかりましたが、必要なのはRTFMだけです。

70
Bill

だから、これのための簡単な修正があります。それは確かに厄介ですが、うまくいきます。 xcopyは、新しいファイル(filename)がすでに存在する場合、宛先がディレクトリかファイルかを確認するように求めません。 xcopyコマンドの前に新しいファイル名を単純にエコーすると、空のファイルが上書きされます。例

echo.>newfile.txt
xcopy oldfile.txt newfile.txt /Y
27
DaveD

これはBillsの回答からです。

ただ他の人たちにとってはっきりしていることです。

_ one _ ファイルをある場所から別の場所に _と_ にコピーする場合は、次のコマンドを使用して完全なディレクトリ構造を作成します。

xcopy "C:\Data\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg" "C:\Target Data\\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg\" 

はい、ファイル名の最後にバックスラッシュを付けてください、そして それがファイルなのかディレクトリなのかを尋ねません。 ソースにはファイルが1つしかないため、ファイルと見なします。

6
adudley

ターゲットの末尾に*が付いているファイルがコピー先に存在するかどうかにかかわらずコピーするXCOPYターゲットの末尾に\が付いているファイルとコピー先に存在するかどうかにかかわらずXCOPY

あるいは

ロボフォームソースファイルの保存先ファイルロボフォームソースファイルの保存先

2
Colin Hay

xcopy src dest /I

REM This assumes dest is a folder and will create it, if it doesnt exists

2
jerryh91

元の質問に戻ります。

 xcopy "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\whee.config"

2つのコマンドで実行できます。

mkdir "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."
xcopy "bin\development\whee.config.example" "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

宛先ファイルのパスに「\ ..」を追加するだけで、宛先ディレクトリがまだ存在しない場合は作成されます。この場合

"c:\mybackup\TestConnectionExternal\bin\Debug\"

存在しないディレクトリの親ディレクトリ

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."

少なくともWIN7の場合 mkdir ディレクトリは気にしない

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

本当に存在します。

2
grenix

大きなファイルを複製する場合は、/ Jスイッチを付けたxopyが適しています。この場合、単純にファイル用のFまたはディレクトリ用のDをパイプ処理します。また、将来の参照用にジョブを配列に保存することもできます。例えば:

$MyScriptBlock = {
    Param ($SOURCE, $DESTINATION) 
    'F' | XCOPY $SOURCE $DESTINATION /J/Y 
    #DESTINATION IS FILE, COPY WITHOUT Prompt IN DIRECT BUFFER MODE
}
JOBS +=START-JOB -SCRIPTBLOCK $MyScriptBlock -ARGUMENTLIST $SOURCE,$DESTIBNATION
$JOBS | WAIT-JOB | REMOVE-JOB

少し変更を加えたChandに感謝します: https://stackoverflow.com/users/3705330/chand

1
MAZDA

robocopycopyではなくxcopyをお勧めします。コマンドとして、またはクライアントまたはサーバー上のGUIで使用されます。ネットワークの一時停止に対する耐性があり、ファイル属性によるコピーのコピー時にファイル属性を無視することを選択できます。ああ、それはマルチコアマシンをサポートしているので、ファイルは順番にではなく、お互いに "パラレル"ではるかに速くコピーされます。 robocopyはMS TechNetにあります。

1
surferdj

私は同様の問題を抱えていたし、robocopyとxcopyの両方は役に立ちませんでした。コメントを抑制し、異なる保存先ファイル名を使いたいからです。私は見つけた

type filename.txt > destfolder\destfilename.txt

私の要件に従って作業しています。

1
user140185

xcopyは単一のファイルを指定されたフォルダにコピーすることを可能にしますそれはあなたが目的地の名前を定義することを可能にしません。コピー先の名前が必要な場合は、コピーする前に名前を変更するだけです。

ren "bin\development\whee.config.example" whee.config

xcopy/R/Y "bin\development\whee.config" "TestConnectionExternal\bin\Debug \"

0
Chuck Emanuel

ファイルをコピーするときは、xcopyの代わりにcopyを使用してください。

例えば"bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\whee.config"をコピーします。

0
Peter

実際にはファイル名を変更していないので、宛先からファイル名を取り出すことができ、質問はありません。

xcopy bin\development\whee.config.example TestConnectionExternal\bin\Debug\  /Y

この方法は、宛先ディレクトリが存在することが保証されている場合、およびソースがファイルまたはディレクトリである場合がある場合に適しています。

0
simmo

ファイルだけをコピーしてコピー先で名前を変更したい場合は、次のようにします。

xcopy/f/y "bin\development\example.exe" "TestConnectionExternal\bin\Debug\NewName.exe *"

そしてそれはうまくいくよ

0
Thanos

回避策として、ReName ...を使用してCryptic Nameという名前を付けてから、適切な名前にReNameします。

子:

CD "C:\ Users\Public\Documents\My Webサイト\ AngelFire〜Zoe \"

XCopy/D/I/V/Y "C:\ Users\Public\Documents\My Webサイト\ HostGator〜ZoeBeans\cop.htm"

Ren "cop.htm" "christ-our-passover.htm"

0
JollyChollie