使用批处理文件将文件夹的所有内容复制到另一个文件夹?

问题描述 投票:0回答:13

我有一个文件夹:

C:\Folder1

我想将

Folder1
的所有内容复制到另一个位置,
D:\Folder2

如何使用批处理文件执行此操作?

windows batch-file copy directory
13个回答
200
投票

xcopy.exe
就是这里的解决方案。它内置于 Windows 中。

xcopy /s c:\Folder1 d:\Folder2

您可以在 http://www.computerhope.com/xcopyhlp.htm

找到更多选项

55
投票

如果您有 robocopy,

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

否则,

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

29
投票

我看到很多答案建议使用

xcopy
。 但这是不必要的。由于问题明确提到作者希望复制文件夹中的内容而不是文件夹本身,在这种情况下我们可以这样做

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

仅此而已

xcopy
可用于如果
C:\Folder1

中存在任何子目录

26
投票

如果您想删除指示目标是文件还是文件夹的消息,只需添加斜杠:

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


13
投票

RoboCopy 对我不起作用,这里有一些很好的解决方案,但没有一个解释 XCopy 开关及其作用。如果您的路径中有空格,您还需要引号。

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

这是 Microsoft 的文档:

X复制 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)

4
投票

这是使用 robocopy 的解决方案,它将 Folder1 的内容复制到 Folder2 中,遍历所有子目录并自动覆盖同名文件:

robocopy C:\Folder1 C:\Folder2 /COPYALL /E /IS /IT

这里:

/COPYALL
复制所有文件信息
/E
复制子目录,包括空目录
/IS
包含相同的文件
/IT
包括具有相同名称的修改文件

更多参数请参见官方文档:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

注意:由于参数

/COPYALL
,可能需要以管理员身份运行该命令。如果你不能:就摆脱它吧。


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
投票

在我的电脑上,xcopy 和 robocopy 还需要它们的路径,即 C:\Windows\System32\xcopy.exe

这就是为什么我简单地使用“复制”: 复制 /y ....\Folder1\File.txt ....\Folder2\


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

原来是这样的! 很简单吧?


0
投票

使用以下命令进行复制

机器人复制/E robocopy C:\Folder1 D:\Folder2 /E

标志: /E:- 如果您想包含一个空子文件夹 /S:- 如果您想排除空子文件夹 /XD:- 如果您想排除某些子文件夹,请使用此标志,之后您可以提及子文件夹的名称,该名称将不会被复制。 /COPYALL:- 复制所有文件信息 欲了解更多信息,您可以访问Microsoft Robocopy链接


-1
投票

仅供参考...如果您使用 TortoiseSVN 并且想要创建一个简单的批处理文件来定期将整个存储库复制(或目录镜像)到“安全”位置,那么这是您可能想要使用的特定代码。它复制隐藏的目录/文件,维护只读属性,以及所有子目录,最重要的是,不会提示输入。只需确保正确分配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
投票

我编写了一个 .bat 文件来将文件复制并粘贴到临时文件夹,然后将其压缩并传输到 smb 挂载点, 希望这会有所帮助,

    @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%"

-3
投票
@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
© www.soinside.com 2019 - 2024. All rights reserved.