我制作了批处理文件,允许我将特定类型的文件从硬盘自动备份到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