Cmd 使用Robocopy复制用户子文件夹

Cmd 使用Robocopy复制用户子文件夹,cmd,robocopy,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:\Te

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

您可以使用不同的方式:

@回音 setlocal EnableDelayedExpansion 对于/R C:\Users\%A,在Normal.dotm中 设置fpath=%%~fA 如果不是!fpath:\AppData\Roaming\Microsoft\Templates\=!=!fpath! rem查找用户名: 对于%%A do中的/F代币=3个delims=\%%B 设置当前用户名=%%B rem复制文件: 复制fpath!C:\Temp\!当前用户名\
当然,这需要管理员权限,没有管理员权限,您无法进入其他用户目录。右键单击文件并选择“以管理员身份运行”。

运行此文件的帐户必须是管理员才能访问每个人的目录。当您认为正在创建正确的命令时,请从命令中删除小写回显

@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%"
)

我只是认为用户只想将Normal.dotm文件复制到C:\Temp\username,而不是整个结构。不能保证只有一个1 Normal.dotm文件。只有Normal.dotm文件将被复制到目录结构中。子目录结构不需要很大的存储空间。