批量(.bat)备份脚本>空文件夹未复制

时间:2017-09-23 02:56:25

标签: batch-file backup batch-processing

这是我用于数据备份的.bat脚本:

ECHO OFF
set source="[source path]"
set destination="[destination path]"

for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd1=%%j"."%%i"."%%k

if exist %destination% goto GO
:GO
mkdir %destination%%yyyymmdd1%
xcopy %source%* %destination%%yyyymmdd1% /s/d/y/c/v/r
echo. 
echo Finished copying %source% to %destination%
echo.
echo Created %destination%%yyyymmdd1%

pause

主要问题:它不会复制空文件夹,因此它需要一个实际的文件才能考虑文件夹本身。

很棒的扩展程序:该脚本当前每天比较源文件夹和目标文件夹,并仅复制更新的文件。如何按天/日期,然后是小时(=文件夹(“9/22/2017”)/文件夹(“7am”)/ [完整源文件夹/文件]实现目标文件夹结构比较。这将使我能够回到我一小时前创建的文件,如果我经常安排脚本。

我根据自己的需要稍微调整了上面的脚本,但我不是原始创作者。我试图在.bat脚本中做得更好,并且一如既往地非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

空目录问题:阅读xcopy上的文档(来自提示:xcopy /?)并注意/e开关。

时间问题:不同的人使用不同的格式。关于如何批量提取时间的SO有很多很多文章。使用顶行中的search工具查找它们。你已经有了一个附加date的骨架 - 它基本上是相同的。

关于时间和日期的文章还将指导您如何根据使用的不同日期/时间格式进行调整,并可能就应用程序的日期/时间格式提出建议,以便于分类和识别(ISO风格的yyyymmddhhmmss)