使用Robocopy备份特定用户文件夹

时间:2015-08-25 12:31:57

标签: backup robocopy

这是我关于StackOverflow的第一个问题,所以请善待;);我有几台计算机在不同的时间备份,每台计算机有2到30个用户,我想备份网络中特定计算机的桌面,文档和收藏夹文件夹。

最初,我尝试使用XCOPY,但由于文件夹路径的长度无法完成,所以我使用了ROBOCOPY,但我被卡住了。这就是我所拥有的:

SET source=c:\testA\Users
SET dest=c:\testB               

rem Desktop folder backup

for /D %%G in (%source%\*) DO ( 
if exist "%%G\Desktop" ROBOCOPY /e /s /MIR /copyall  "%%G\Desktop" "%dest%\%%G\Desktop" )

此命令无法在运行时创建目标文件夹%dest%\%%G\Desktop,如:c:\testb\c:\testA\Users\"current username from for index %%G"\Desktop

它给出了目标文件夹错误:"文件名,目录名或卷名的语法不正确。"
从理论上讲,除了dest文件夹之外,命令本身也可以工作,但也许我错过了一些东西。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于代码的长度,我想回答我自己的问题。 我设法让事情有效,除了排除我想被排除的目录......

这里我从用户输入获取源和目的地:

 SET /p source="Hostname : "
 SET /p dest="Destination path : "
 SET /p _OS="a for XP b for W7 backup : "
 echo "you chose %_OS%"

IF条件根据先前的选择获取正确的Windows7文件夹路径:

    IF %_OS%==b ( 
        SET source=%source%\c$\Users
        pause

        echo !source!
        echo %dest%
        pause

FOR条件循环用户文件夹:

            FOR /D %%G in (!source!\*) DO (
                if exist %%G\Desktop ROBOCOPY %%G\Desktop %dest%\%%G\Desktop /XD !source!\admin /e /s /copy:datsou

        )
        PAUSE

代码执行时!source!\ admin获取要排除的正确路径,但robocopy无论如何都只是复制它。 我还尝试指定路径:" \ computer1 \ c $ \ Users \ admin"有或没有引号,相同的效果,路径不被驱逐。

任何想法???