Копирование пользовательских подпапок с использованием Robocopy - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь скопировать Normal.dotm со всех пользователей C:\Users\%username%\AppData\Roaming\Microsoft\Templates в C:\Temp\%username%.Я специально пытаюсь сделать резервную копию данных перед переустановкой в ​​рамках последовательности задач SCCM.Есть мысли?

Я пробовал несколько разных скриптов, используя robocopy, и он либо зацикливался, либо копировал только один каталог.

robocopy C:\Users\%username%\AppData\Roaming\Microsoft\Templates\. C:\Temp\%username% /s /create

Команда копирования только копий запускается как:

robocopy C:\Users\ C:\Temp\ /s /xjd normal.dotm

Создает цикл и создает C:\Users\Application\Data\Application Data\ навсегда

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Учетная запись, на которой запущена эта учетная запись, должна быть администратором, чтобы иметь доступ ко всем каталогам.Когда вы считаете, что создаются правильные команды, удалите из них нижний регистр echo.

@ECHO OFF

FOR /F "delims=" %%f IN ('DIR /S /B "C:\Users\Normal.dotm"') DO (
    SET "TDIR=C:\temp%%~pf"
    IF NOT EXIST "%TDIR%" (echo MKDIR "%TDIR%")
    echo COPY "%%~f" "%TDIR%"
)
0 голосов
/ 08 февраля 2019

Вы можете использовать другой способ:

@echo off
setlocal EnableDelayedExpansion

for /R "C:\Users\" %%A IN (Normal.dotm) do (
    set "fpath=%%~fA"
    if not "!fpath:\AppData\Roaming\Microsoft\Templates\=!" == "!fpath!" (

        rem Find username:
        for /F "tokens=3 delims=\" %%B IN ("%%A") do (
            set "current_username=%%B"
        )

        rem Copy files:
        copy "!fpath!" "C:\Temp\!current_username!\"
    )
)

Это, конечно, требует прав администратора, вы не можете входить в каталоги других пользователей без прав администратора.Щелкните правой кнопкой мыши свой файл и выберите «Запуск от имени администратора».

...