我为我的家用电脑制作了这个脚本,以便轻松地将我收集的所有照片和视频备份到一个外部硬盘驱动器上。
SET BackUpDir=%~d0\BackUpDir
for %%d in (C:\ D:\) do (
if exist %%d (
robocopy %%d %BackUpDir% *.jpg *.jpeg *.dng *.nef *.mp4 *.mov *.wmv *.avi *.3gp *.3g2 /MIN:20000 /MAX:2703622144 /s /W:15 /XD C:\$WINDOWS.~BT "C:\System Volume Information" C:\Windows "C:\Program Files" C:\Boot C:\MSOCache C:\Recovery "C:\Program Files (x86)" "C:\Documents and Settings" C:\ProgramData "C:\Users\All Users" C:\Users\Default "C:\Users\Default User" C:\Users\defaultuser0 C:\Users\Public )
)
exit 0
我有几台具有不同分区结构的计算机。其中一个只有驱动器C:
和D:
,但例如第二个分区有五个分区。
现在我有了这行代码,只在两个分区上查找文件:
for %%d in (C:\ D:\) do (
我不想每次都编辑脚本来添加额外的分区,这些分区在第一台计算机上不存在,但在第二台计算机上确实存在。我希望我的脚本自动查找计算机上除执行备份脚本的外部硬盘驱动器以外的所有可用分区。
如何更改上面的命令行来实现这一点?
我想要这样的东西:
for %%d in ("list of all partition" except "backup external hard drive") do (
发布于 2019-06-09 16:55:24
您已经知道如何获取要排除的驱动器,它在第一行%~d0
中,因为您正在使用它来设置要备份到的目录。
此外,您还可以使用exist
找出实际存在的驱动器。
因此,以下脚本将处理所有存在的驱动器以及与运行脚本的驱动器不匹配的驱动器:
@echo off
rem Expand following list as needed.
for %%d in (C D E F G H I J) do (
if exist %%d:\. if not %%d:==%~d0 (
echo Processing drive %%d
)
)
当我从我的系统上的驱动器C:
运行该命令时,我得到:
Processing drive E
https://stackoverflow.com/questions/56513141
复制相似问题