使用批处理文件进行备份 - 复制到同一子目录但在另一个驱动器上

时间:2018-03-03 16:13:35

标签: batch-file xcopy

我制作了批处理文件,允许我将特定类型的文件从硬盘自动备份到flashdrive。现在我的脚本将所有文件复制到一个文件夹中

我希望它将文件复制到与origin相同的子目录,如下例所示:

形式 C:/的 vacation_photos_2017 /pic1.jpg 至 E:/ BackUpScript /备份/的 vacation_photos_2017 /pic1.jpg

任何人都可以帮我吗?

我的代码如下所示:

SET FileSizeMin=20000
SET ExcludeList=%ExcludeList%%~d0\BackUpScript\exclude_list.txt
SET BackUpDir=%BackUpDir%%~d0\BackUpScript\BackUp

if exist %ExcludeList% del "%ExcludeList%"
echo.> %ExcludeList%
echo \Filmy\>> "%ExcludeList%"
echo \Seriale\>> "%ExcludeList%"

for %%d in (C:\ D:\) do (
    PUSHD %%d
    for /f "delims=" %%F in ('Dir /B/S/A *.jpg *.jpeg *.nef *.dng *.mp4 *.mov *.wmv *.avi *.3gp *.3g2 *.gif') do if %%~zF GTR %FileSizeMin% (xcopy /s/h/y/c /exclude:%ExcludeList% "%%F" "%BackUpDir%\")
    POPD
)
del "%ExcludeList%"
exit 0

[编辑]

好的,我已经重写了使用Robocopy的脚本,它可以按照我想要的方式工作(下面的代码),但...... Afret批处理脚本完成后,脚本会隐藏主 BackUp3 文件夹(脚本复制文件)。剧本以我无法取消隐藏的方式隐藏了直接(我不知道为什么)。

为什么这个批处理脚本隐藏了我的BackUp目录?为什么我不能通过选中文件夹选项中的“显示隐藏文件”取消隐藏它?

SET BackUpDir=%~d0\VisualStudio\ArchitectureExplorer\BackUpDir3

for %%d in (E:\ F:\ G:\ H:\ I:\) do (
    if exist %%d (
    robocopy %%d %BackUpDir% *.jpg *.jpeg *.mp4 *.mov *.wmv *.avi *.3gp *.3g2 *.gif /MIN:20000 /s /W:15 /XD %%dFilmy %%dSeriale )
)
exit 0

0 个答案:

没有答案