vbscript robocopy目录到不同的位置

时间:2016-08-26 18:28:34

标签: vbscript robocopy

我想创建一个使用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

1 个答案:

答案 0 :(得分:0)

如果您想使用所有VBScript,您应该可以使用它。编辑 - 添加了减少代码的子。

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