运行批处理文件以将桌面和我的文档备份到共享位置

时间:2014-06-27 22:36:16

标签: windows batch-file command-line cmd command-prompt

我在域上有50台计算机,我想将他们的桌面和我的文档文件夹备份到网络上的共享驱动器。

我写了一个批处理文件,并通过GPO /计划任务将其添加到所有计算机。它适用于其中一些,但对于其中一些,它会弹出一个问题,说要么不能创建目录,要么是否是目录,并要求提示" d"

请查看我正在播放的内容

ECHO off

mkdir "\\Serv\Local_Backup\%username%\Desktop"
mkdir "\\Serv\Local_Backup\%username%\My Documents"

xcopy "%userprofile%\Desktop" "\\Serv\Local_Backup\%username%\Desktop" /E /Y /Q
xcopy "%userprofile%\Documents" "\\Serv\Local_Backup\%username%\My Documents" /E /Y /Q

Exit

以更少的麻烦实现同一目标的最佳方法是什么?

有没有办法可以传递值d并在此代码中输入?

2 个答案:

答案 0 :(得分:1)

类型

xcopy /?

部分说

Copies files and directory trees.

NOTE: Xcopy is now deprecated, please use Robocopy.

虽然也看到/ i切换。

/I           If destination does not exist and copying more than one file,
             assumes that destination must be a directory.

同样指定文件名效果更好。

xcopy "%userprofile%\Desktop\*.*" "\\Serv\Local_Backup\%username%\Desktop\*.*" /E /Y /Q
xcopy "%userprofile%\Documents\*.*" "\\Serv\Local_Backup\%username%\My Documents\*.*" /E /Y /Q

所以输入

robocopy /?

robocopy.doc

答案 1 :(得分:0)

目标上的尾部反斜杠告诉xcopy目标是一个目录,目录将自动创建。

在源文件夹中使用filespec。

@echo off
xcopy "%userprofile%\Desktop\*.*" "\\Serv\Local_Backup\%username%\Desktop\" /E /Y /Q
xcopy "%userprofile%\Documents\*.*" "\\Serv\Local_Backup\%username%\My Documents\" /E /Y /Q