使用Robocopy复制用户子文件夹

时间:2019-02-08 16:09:14

标签: cmd robocopy

我正在尝试将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

仅复制目录cmd的运行方式为:

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

创建循环并永久创建C:\Users\Application\Data\Application Data\

2 个答案:

答案 0 :(得分:1)

运行此帐户的帐户必须是管理员才能访问每个人的目录。如果您确信创建了正确的命令,请从中删除小写的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%"
)

答案 1 :(得分:0)

您可以使用其他方式:

@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!\"
    )
)

那当然需要管理员特权,如果没有管理员特权,您不能进入其他用户目录。右键单击您的文件,然后选择“以管理员身份运行”。