Я создал программу пакетного резервного копирования для работы. Он также имеет возможность восстановить данные на компьютер.
Первоначально у меня было robocopy, исключающее appdata и просто захватывающее файлы Outlook отдельно. Недавно я обнаружил, что хочу получить все данные приложения, но поместить их в отдельную папку. Моя задача в том, что я хочу получить Appdata от всех пользователей на компьютере, а не только от текущего пользователя. Я знаю, что могу просто найти все папки в C:\Users, а затем скопировать папки appdata в цикле for, но мне кажется, что должен быть лучший и более чистый способ сделать это.
В настоящее время я бы сделал что-то вроде этого: (это не рабочий код, это просто идея, которую я хочу сделать чище)
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
for /f %%a in ('dir "C:\Users" /B /A D') do if exist "C:\Users\%%a\Appdata" robocopy c:\Users\%%a\Appdata\ F:\BACKUP\%%a\ /s
11.02.2018"C:\Users"
первым, получил:0 c:\Users\Default\Appdata\Local\Application Data\ 0 c:\Users\Default\Appdata\Local\Application Data\Application Data
которого не существует. Мои правки позволили коду запускаться и копироваться, но вместо того, чтобы копировать 50 ГБ, он продолжал работать, и я отменил его, когда он достиг 70 ГБ. 11.02.2018:
в/a:d
в моей версии кода. Теперь он работает без циклов. 11.02.2018