Я пытаюсь преобразовать BATCH-файл, над которым все еще работаю (вопрос в Robocopy | Зеркальное отображение, включая исходную родительскую папку).
Я добился некоторого прогресса, и причина, по которой я перешел на VB, заключается в том, чтобы добавить немного больше функций, например, добавить диалоговое окно, предлагающее пользователю найти папку, которую они хотели бы сделать резервной копией...
Теперь код, который у меня есть в настоящее время (только частично преобразован из моего исходного файла .bat);
Dim Command1
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Example", 1, "c:\Programs")
If objFolder Is Nothing Then
Wscript.Quit
End If
wscript.Echo "folder: " & objFolder.title & " Path: " & objFolder.self.path
sCmd = "%windir%\System32\Robocopy.exe "
sDate = Day(Now) & "-" & Month(Now) & "-" & Year(Now)
sTime = Hour(Now) & "-" & Minute(Now) & "-" & Second(Now)
sSource = objFolder & " "
sDestination = "Backups\"& Year(Now) &"\"& Month(Now) &"\"& Day(Now) &"\ "
sLogDir = "Backups\Logs\"& Year(Now) &"\"& Month(Now) &"\"& Day(Now) &"\ "
sSwitches = "/SEC /E /Log:"& sTime &".txt"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(sCmd & sSource & sDestination & sSwitches)
Моя проблема в том, что это происходит в соответствии с файлом журнала;
Source = G:\test\delete\
Dest = G:\test\Backups\2013\10\23\
Между тем истинный источник;
C:\Users\User\Desktop\delete
Итак, что я хотел бы попытаться выяснить, так это то, почему он прикрепляет «G: \ test», папку, из которой запускается .vbs, к его источнику.
В общем, моя цель - просто скопировать файлы Robocopy, но источник основан на вводе пользователем (отсюда и опция выбора папки). Я также хотел бы добавить параметр «назначение», в котором вы указываете, куда делать резервную копию ... Но это действительно необязательно, я уверен, что смогу понять это, если разберусь с этой первой проблемой.
Заранее спасибо за любую помощь!
sSource = objFolder.self.Path & " "
- person MC ND   schedule 23.10.2013sSource = Chr(34) & objFolder.self.Path & Chr(34) & " "
. При вызове robocopy, если исходный код содержит пробелы, необходимо заключать пути в кавычки. - person MC ND   schedule 23.10.2013sSwitches = "/E /Log:"& Chr(34) & objDest.self.Path & Chr(34) & sTime &".txt"
в зависимости от пункта назначения;sDestination = Chr(34) & objDest.self.Path & Chr(34) & " "
- person Deadmano   schedule 23.10.2013