这是我用于数据备份的.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脚本中做得更好,并且一如既往地非常感谢帮助。
答案 0 :(得分:1)
空目录问题:阅读xcopy
上的文档(来自提示:xcopy /?
)并注意/e
开关。
时间问题:不同的人使用不同的格式。关于如何批量提取时间的SO有很多很多文章。使用顶行中的search
工具查找它们。你已经有了一个附加date
的骨架 - 它基本上是相同的。
关于时间和日期的文章还将指导您如何根据使用的不同日期/时间格式进行调整,并可能就应用程序的日期/时间格式提出建议,以便于分类和识别(ISO风格的yyyymmddhhmmss)