在批处理脚本中,可以使用 xcopy
或 robocopy
命令来将当前文件夹(包括所有子文件夹和文件)复制到指定的目标文件夹。以下是使用这两种方法的示例。
使用 xcopy
命令
xcopy
是一个经典的文件复制命令,可以递归地复制文件夹及其内容。
示例脚本
假设有一个批处理文件 copy_folder.bat
,想要将当前文件夹复制到 C:\DestinationFolder
:
@echo off
REM 获取当前批处理文件的路径
set "source_path=%~dp0"
set "destination_path=C:\DestinationFolder"
REM 使用 xcopy 命令复制文件夹
xcopy "%source_path%" "%destination_path%" /E /H /C /I /Y
REM 输出完成信息
echo 文件夹复制完成。
解释
%~dp0
:获取当前批处理文件的路径。xcopy "%source_path%" "%destination_path%" /E /H /C /I /Y
:/E
:复制所有子目录,包括空目录。/H
:复制隐藏和系统文件。/C
:即使发生错误也继续复制。/I
:如果目标不存在且复制多个文件,则假定目标必须是目录。/Y
:不提示确认覆盖现有文件。
使用 robocopy
命令
robocopy
是一个更强大的文件复制工具,提供了更多的选项和功能。
示例脚本
同样,假设有一个批处理文件 copy_folder.bat
,想要将当前文件夹复制到 C:\DestinationFolder
:
@echo off
REM 获取当前批处理文件的路径
set "source_path=%~dp0"
set "destination_path=C:\DestinationFolder"
REM 使用 robocopy 命令复制文件夹
robocopy "%source_path%" "%destination_path%" /E /COPYALL /DCOPY:T
REM 输出完成信息
echo 文件夹复制完成。
解释
%~dp0
:获取当前批处理文件的路径。robocopy "%source_path%" "%destination_path%" /E /COPYALL /DCOPY:T
:/E
:复制所有子目录,包括空目录。/COPYALL
:复制所有文件属性(包括时间戳、权限等)。/DCOPY:T
:复制目录时间戳。
总结
通过使用 xcopy
或 robocopy
命令,可以轻松地将当前文件夹复制到指定的目标文件夹。robocopy
提供了更多的选项和功能,因此在处理复杂的复制任务时更为推荐。