BATCH - 从多个目录复制单个文件夹的更好方法

时间:2018-02-09 21:01:18

标签: batch-file

我已经为工作建立了批量备份程序。它还具有将数据恢复到计算机的能力。

最初我有robocopy排除appdata并且单独抓取outlook文件。最近我发现我想抓住所有的appdata,但把它放到一个单独的文件夹中。 我的挑战是我想从计算机上的所有用户那里获取Appdata,而不仅仅是当前用户。 我知道我可以发现C:\ Users中的所有文件夹,然后在for循环中复制appdata文件夹,但我觉得必须有更好,更清晰的方法来实现它。

目前我会这样做: (这不是正常工作的代码,它只是我想让它更清洁的想法)

For /f %%a in ('dir C:\Users /B /A D') do (
   robocopy "C:\Users\%%a" "BACKUP DIR\AppData"
)

我希望找到更像解除方法的解决方案

robocopy "C:\Users" "BACKUP DIR\AppData" /only folders named appdata

1 个答案:

答案 0 :(得分:0)

这将检查用户是否有appdata dir并将其复制。

for /f %%a in ('dir /b /a:d "C:\Users"') do (
  if exist C:\Users\%%a\Appdata robocopy c:\Users\%%a\Appdata\ D:\BACKUP\
)

如果每个用户都有他/她自己的备用目录,你可能还需要if not exist backup mkdir backup