バッチファイルを使用して、フォルダーのすべての内容を別のフォルダーにコピーしますか?


130

にフォルダがあります C:\Folder1

すべてのコンテンツFolder1を別の場所にコピーしたいD:\Folder2

バッチファイルを使用してこれを行うにはどうすればよいですか?

回答:


163

xcopy.exeここでのソリューションです。Windowsに組み込まれています。

xcopy /s c:\Folder1 d:\Folder2

あなたはhttp://www.computerhope.com/xcopyhlp.htmでより多くのオプションを見つけることができます


3
こんにちはフセイン、私はバッチファイルでxcopy / sc:\ Folder1 d:\ Folder2コマンドを試しましたが、それは私のために動作しません。もっと教えてください。
SCM

こんにちは、あなたはここからバッチファイルをダウンロードすることができます。しかしながら、あなたのマシン上でそのXCOPYを持っていない場合がございますbrothersoft.com/xcopy-177904.html
eHussain

4
空のサブディレクトリもコピーする場合は、/ s / eフラグを使用する必要があります。
Ameba Spugnosa 2013

/ eは自動的に/ sを含めませんか?
mghicks 2015年

14
xcopyは非推奨であり、ファイル名が254文字を超えると「メモリ不足」エラーが発生します。robocopy代わりに使用してください:robocopy C:\Folder1 D:\Folder2 /COPYALL /E en.wikipedia.org/wiki/Robocopy
Marco Demaio

39

ロボコピーがあれば

robocopy C:\Folder1 D:\Folder2 /COPYALL /E

さもないと、

xcopy /e /v C:\Folder1 D:\Folder2

1
それがFolder1の内容をコピーする場合、フォルダー自体をコピーする場合はどうしますか?
カイルデラニー

2
@KyleDelaneyは、宛先にソースフォルダー名を含めます(例: "xcopy / e / v C:\ Folder1 D:\ Folder2 \ Folder1 \"
mghicks

1
注意ROBOCOPYはエスケープ文字として\を使用しています (CMDにはない)あなたがスペースや引用符で囲んでパスして試してみて、合格した場合、終了スラッシュのように"C:\My Folder\"あなたは厄介な驚きを得ることができます。そのSS64ページを注意深く読むことをお勧めします。「CMDのエスケープキャラクターとは」といううさぎの穴の完全な説明については、「バッチスクリプトでの二重引用符のエスケープ」を参照してください。
jrh

21

宛先がファイルまたはフォルダーかどうかを示すメッセージを削除する場合は、スラッシュを追加するだけです。

xcopy /s c:\Folder1 d:\Folder2\


16

xcopyの使用を提案する多くの回答が表示されます。しかし、これは不要です。この質問では、作成者がフォルダー自体の内容ではなく、フォルダー内のコンテンツをコピーすることを望んでいることを明確に述べているため、この場合は次のようにできます。

copy "C:\Folder1" *.*  "D:\Folder2"

xcopyサブディレクトリが存在する場合、すべてを使用できますC:\Folder1


1
これは、コピー先のフォルダーがまだ存在しない場合(私はそう思います)には機能しないため、追加することをお勧めしますmd D:\Folder2
Mark Deven

2
私のcopyコマンド(Windows 10コマンドプロンプト)で、構文が正しくないことがわかります。以下は、正しい構文になりますcopy "C:\Folder1\*.*" "D:\Folder2"
j00hi

4

RoboCopyは私にとってはうまくいきませんでした、そしてここにいくつかの良い解決策がありますが、XCopyスイッチとそれらが何をするかを説明したものはありません。また、パスにスペースが含まれている場合は、引用符が必要です。

xcopy / i / e "C:\ temp \ folder 1" "C:\ temp \ folder 2"

Microsoftのドキュメントは次のとおりです。

XCopy MSドキュメント

/s: Specifies to include subdirectories. Excludes empty subdirectories
/e: Copies all subdirectories, even if they are empty
/i: specifies the destination is a folder (Otherwise it prompts you)

2
@echo off
::Ask
echo Your Source Path:
set INPUT1=
set /P INPUT1=Type input: %=%

echo Your Destination Path:
set INPUT2=
set /P INPUT2=Type input: %=%

xcopy %INPUT1% %INPUT2% /y /s

2

私のPCでは、xcopyとrobocopyはそれらへのパスも必要です。つまり、C:\ Windows \ System32 \ xcopy.exe

これが、単に「コピー」を使用する理由です。コピー/ y .... \ Folder1 \ File.txt .... \ Folder2 \


2
@echo off
xcopy /s C:\yourfile C:\anotherfile\

これがそのやり方です!シンプルでしょ?


-1

参考までに... TortoiseSVNを使用していて、リポジトリ全体を定期的に「安全な」場所にxcopy(またはディレクトリミラー)する単純なバッチファイルを作成する場合、これは、使用する可能性のある特定のコードです。隠しディレクトリ/ファイルをコピーし、読み取り専用の属性を維持します。すべてのサブディレクトリ、そして何よりも、入力を求められません。folder1(安全なリポジトリ)とfolder2(使用可能なリポジトリ)を正しく割り当てていることを確認してください。

@echo off
echo "Setting variables..."
set folder1="Z:\Path\To\Backup\Repo\Directory"
set folder2="\\Path\To\Usable\Repo\Directory"
echo "Removing sandbox version..."
IF EXIST %folder1% (
    rmdir %folder1% /s /q
)
echo "Copying official repository into backup location..."
xcopy /e /i /v /h /k %folder2% %folder1%

そして、それだけです!

スケジュールされたタスクに追加し、決して振り返ることはありません。


-2
@echo off
:: variables
echo Backing up file
set /P source=Enter source folder:
set /P destination=Enter Destination folder:
set xcopy=xcopy /S/E/V/Q/F/H/I/N
%xcopy% %source% %destination%
echo files will be copy press enter to proceed
pause

2
コードの説明は、この質問の質問者だけでなく、同じ問題の解決策を探してこれに出くわす将来の人々にも役立ちます。
ジョシュバージェス

3
他のフラグと直接矛盾するいくつかのフラグがあります。/S空のものを除くディレクトリとサブディレクトリを/Eコピーし、空のものを含むディレクトリとサブディレクトリをコピーします。/Qコピー中はファイル名は表示されませんが、コピー中はコピー/F元とコピー先の完全なファイル名が表示されます。
SomethingDark

-2

一時ファイルにファイルをコピーして貼り付け、zipしてsmbマウントポイントに転送するための.batファイルを作成しました。これが役立つことを願って、

    @echo off
    if not exist "C:\Temp Backup\" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    xcopy /s/e/q "C:\Source" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
   Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\TELIUM"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_Log_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    NET USE \\IP\IPC$ /u:IP\username password
    ROBOCOPY "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"  "\\IP\Backup Folder" /z /MIR /unilog+:"C:\backup_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log"
    NET USE \\172.20.10.103\IPC$ /D
    RMDIR /S /Q "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.