web-dev-qa-db-ja.com

あるフォルダから別のフォルダにファイルをコピーするためのバッチファイル

私はすべてのユーザーが自分のアクティブなデータをサーバーに保存するネットワーク上の保存フォルダーを持っています。今、そのサーバーは場所の問題のために新しいものと交換されようとしているので、私は古いサーバー格納フォルダーから新しいサーバー格納フォルダーにサブフォルダーファイルをコピーする必要があります。私は元以下の:

\ Oldeserver\storage\data&filesから\ New server\storage\data&filesに移動します。

205
user73628

xcopy.exe 間違いなくここにあなたの友達です。これはWindowsに組み込まれているので、そのコストはかかりません。

xcopy /s c:\source d:\targetだけ

あなたはおそらくいくつかのことを微調整したいと思うでしょう。私たちが追加したオプションには、次のものがあります。

  • /s/e - 空のディレクトリのコピーを含む再帰的コピー.
  • /v - コピーをオリジナルと照合するためにこれを追加します。遅くなりますが、妄想です。
  • /h - システムと隠しファイルをコピーします。
  • /k - ファイルと一緒に読み取り専用属性をコピーします。それ以外の場合は、すべてのファイルが読み書き可能になります。
  • /x - もしあなたがパーミッションを気にかけているのなら、/o/xが欲しいかもしれません。
  • /y - 既存のファイルを上書きする前に確認を求めません。
  • /z - コピーが失敗する可能性があり、再起動したい場合はこれを使用してください。コピー時に各ファイルにマーカーが配置されるので、xcopyコマンドを実行して中断した場所から再開できます。

Xcopyが途中で失敗する可能性があると思われる場合(不安定なネットワーク接続を介してコピーしている場合など)、またはそれを停止して後で続行したい場合は、xcopy /s/z c:\source d:\targetを使用できます。

お役に立てれば。

390
lavinio

明確にするために、xcopy /s c:\source d:\targetを使用するときは、c:\ sourceとd:\ targetの周囲に配置してください。そうしないとエラーになります。

つまり、パスにスペースがある場合、つまりあなたが持っている場合:

"C:\Some Folder\*.txt"

あなたが持っている場合でも必須ではありません:

C:\SomeFolder\*.txt
50
Ike

データをバックアップするための私のお気に入りのものは:

ROBOCOPY "C:\folder" "C:\new_folder" /mir

/ mirはミラー用です。/movを使ってファイルを移動することもできます。まったく同じフォルダを再現します。必要に応じてファイルを削除/上書きすることができます。私にとっては素晴らしい作品です。 xcopy/copyより速いです。 Windowsにも組み込まれています。

出典: http://technet.Microsoft.com/ja-jp/library/cc733145.aspx

42
Etienne Dupuis

XCopy または RoboCopy を見てみるとよいでしょう。これらは、Windows上のほぼすべてのファイルコピー操作に対するかなり包括的なソリューションです。

17
Joey

「ターゲット上のファイル名またはディレクトリ名を指定する(F =ファイル、D =ディレクトリ)」をバイパスするにはxcopyでプロンプトを出すと、次のことができます。

echo f | xcopy /f /y srcfile destfile

あるいは私たちの場合は、大きなサブ構造/フォルダをコピーするだけです。

複数のファイルをコピーする場合、destinationを指定する/ iを使用する

13
wintondeshong

絶対パス、相対パスを使用せずにファイルをコピーする場合は、次のようにします。

パスにスラッシュを記述し、スラッシュを付けないことを忘れないでください(^^)

例:

    copy children-folder\file.something .\other-children-folder

PS:絶対パスは "バッチパラメータ"と呼ばれるこれらのワイルドカードを使って検索することができます

    @echo off
    echo %%~dp0 is "%~dp0"
    echo %%0 is "%0"
    echo %%~dpnx0 is "%~dpnx0"
    echo %%~f1 is "%~f1"
    echo %%~dp0%%~1 is "%~dp0%~1"

コピーについては、こちらのドキュメントを確認してください。 https://technet.Microsoft.com/ja-jp/library/bb490886.aspx

また、ここでバッチパラメータのドキュメントもあります。 https://www.Microsoft.com/japan/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

2
marcdahan
@echo off

rem The * at the end of the destination file is to avoid File/Directory Internal Question.

rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause

rem You can use "copy" instead of "xcopy "for this example.
1
David Castro

rsyncベースのWindowsツール NASBackup を見てください。あなたがrsyncコマンドに精通していればそれはボーナスになります。

0
nik