我在域上有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并在此代码中输入?
答案 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