我以前在Robocopy中使用了一行,允许我复制文件夹中的所有文件夹包含父文件夹,IE浏览Blackberry文件夹中的所有文件/文件夹包含Blackberry文件夹本身,否则没有它只会复制其中的文件并将其转储到备份位置......
使用的代码是;
for %%a in ("%source%") do SET destination="Backups\%date%\%%~nxa"
现在我用VB脚本了; sSource = Chr(34)& objFolder.self.Path& Chr(34)& “”
那么我如何使用VB脚本(仍然调用Robocopy)使用上面的内容,以便在备份时它还包括PARENT文件夹?
这是我的代码; Converting Robocopy Batch To VB Script
提前致谢!
编辑:我的脚本文件的当前内容;
Dim BrowseBackupSource
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Please browse to the folder you would like to backup.", 1, "C:\")
If objFolder Is Nothing Then
Wscript.Quit
End If
wscript.Echo "folder: " & objFolder.title & " Path: " & objFolder.self.path
Dim BrowseBackupLocation
Set objShell = CreateObject("Shell.Application")
Set objDest = objShell.BrowseForFolder(0, "Please browse to the folder you would like to save the backup to.", 1, "C:\")
If objDest Is Nothing Then
Wscript.Quit
End If
wscript.Echo "folder: " & objDest.title & " Path: " & objDest.self.path
sCmd = "%windir%\System32\Robocopy.exe "
sDate = Day(Now) & "-" & Month(Now) & "-" & Year(Now)
sTime = Hour(Now) & "-" & Minute(Now) & "-" & Second(Now)
sSource = Chr(34) & objFolder.self.Path & Chr(34) & " "
sDestination = Chr(34) & objDest.self.Path & Chr(34) & " "
sSwitches = "/E /Log:"& sTime &".txt"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(sCmd & sSource & sDestination & sSwitches)
答案 0 :(得分:0)
如果要创建特定文件夹的副本以进行备份,为什么不简单地将该文件夹复制到备份目标并完成备份?
Set fso = CreateObject("Scripting.FileSystemObject")
Set app = CreateObject("Shell.Application")
dst = "C:\backups\" & Year(Now) & "\" & Month(Now) & "\" & Day(Now)
CreatePath dst
Set fldr = app.BrowseForFolder(0, "Example", 1, "c:\Programs")
fso.CopyFolder fldr.Self.Path, dst & "\", True
Sub CreatePath(p)
If Not fso.FolderExists(p) Then
CreatePath fso.GetParentFolderName(p)
fso.CreateFolder p
End If
End Sub
答案 1 :(得分:0)
好吧,如果您需要将父文件夹的路径设置为副本的根目录:
dim parentFolderPath
parentFolderPath = WScript.CreateObject("Scripting.FileSystemObject").GetFolder(objFolder.self.Path).ParentFolder.Path
修改
您需要将所选源目录的名称添加到所选目标的路径中,以便
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
sSourceFolderName = fso.GetFolder(objFolder.self.Path).Name
sDestination = Chr(34) & objDest.self.Path & "\" & sSourceFolderName & Chr(34)
Robocopy将处理目标目录创建