将vbscript robocopy目录复制到不同的位置

将vbscript robocopy目录复制到不同的位置,vbscript,robocopy,Vbscript,Robocopy,我想创建一个使用robocopy的vbscript,这很好,但我希望您能为我提供最优雅的方法来实现这一点 将用户目录的所有内容(文件和文件夹)复制到此位置,但将AppData目录(文件和文件夹)复制到其他位置和将桌面目录复制到其他位置除外 If FSO.folderExists(SOURCE & strAccount & "\AppData") Then oShell.Run "robocopy " & appDataSource & " " &

我想创建一个使用robocopy的vbscript,这很好,但我希望您能为我提供最优雅的方法来实现这一点

将用户目录的所有内容(文件和文件夹)复制到此位置,但将AppData目录(文件和文件夹)复制到其他位置和将桌面目录复制到其他位置除外

If FSO.folderExists(SOURCE & strAccount & "\AppData") Then
    oShell.Run "robocopy " & appDataSource & " " & appDatastrDestination & appDatastrSwitches
Else
    oShell.Run "robocopy " & strSource & " " & strDestination & strSwitches
End If

如果您想使用所有VBScript,您应该能够使用它。编辑-添加sub以减少代码

On Error Resume Next

strSourceProfile = "C:\Users\NewUser"

strBaseFolder1 = "C:\Temp\"
strBaseFolder2 = "C:\Temp\Backup\"
strDestFolder1 = "C:\Temp\Backup\Profile\"
strDestFolder2 = "C:\Temp\Backup\Desk\"
strDestFolder3 = "C:\Temp\Backup\App\"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Const OverWriteFiles = True

' make sure target folders exist
ChkFolder strBaseFolder1
ChkFolder strBaseFolder2
ChkFolder strDestFolder1
ChkFolder strDestFolder2
ChkFolder strDestFolder3

For Each objFolder In objFSO.GetFolder(strSourceProfile).SubFolders
  If objFolder.Name <> "Desktop" And objFolder.Name <> "AppData" Then
    CopyToTarg objFolder.Path, strDestFolder1
  End If
Next
For Each objFolder In objFSO.GetFolder(strSourceProfile).SubFolders
  If objFolder.Name = "Desktop" Then
    CopyToTarg objFolder.Path, strDestFolder2
  End If
Next
For Each objFolder In objFSO.GetFolder(strSourceProfile).SubFolders
  If objFolder.Name = "AppData" Then
    CopyToTarg objFolder.Path, strDestFolder3
  End If
Next  

Sub ChkFolder(strFolder)
  If Not(objFSO.FolderExists(strFolder)) Then
    objFSO.CreateFolder(strFolder)
  End If
End Sub

Sub CopyToTarg(strSource , strTarget)
  objFSO.CopyFolder strSource , strTarget , OverWriteFiles
End Sub
出错时继续下一步
strSourceProfile=“C:\Users\NewUser”
strBaseFolder1=“C:\Temp\”
strBaseFolder2=“C:\Temp\Backup\”
strDestFolder1=“C:\Temp\Backup\Profile\”
strDestFolder2=“C:\Temp\Backup\Desk\”
strDestFolder3=“C:\Temp\Backup\App\”
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
Const OverWriteFiles=True
'确保目标文件夹存在
ChkFolder strBaseFolder1
ChkFolder strBaseFolder2
ChkFolder标准文件夹1
ChkFolder标准文件夹2
ChkFolder标准文件夹3
对于objFSO.GetFolder(strSourceProfile).SubFolders中的每个objFolder
如果objFolder.Name为“桌面”,objFolder.Name为“AppData”,则
CopyToTarg objFolder.Path,strDestFolder1
如果结束
下一个
对于objFSO.GetFolder(strSourceProfile).SubFolders中的每个objFolder
如果objFolder.Name=“桌面”,则
CopyToTarg objFolder.Path,strDestFolder2
如果结束
下一个
对于objFSO.GetFolder(strSourceProfile).SubFolders中的每个objFolder
如果objFolder.Name=“AppData”,则
CopyToTarg objFolder.Path,strDestFolder3
如果结束
下一个
子ChkFolder(strFolder)
如果不是(objFSO.FolderExists(strFolder)),那么
objFSO.CreateFolder(strFolder)
如果结束
端接头
子CopyToTarg(strSource、strTarget)
objFSO.CopyFolder strSource、strTarget、OverwriteFile
端接头

vbscript可以做到这一点。。。到目前为止你都尝试了什么?你给我们提供一些代码怎么样?如果你有问题,问一个具体的问题。另外,问是否有更优雅的方法来做某事是离题的,因为它吸引了基于意见的答案。@rico让人们不帮助你的最快方法是你的评论。好的Luck@Sorceri总有一天我会学会不参与这些类型的帖子。似乎大多数人都不会回来发表评论或标记它的答案。这根线刚过时。