2013-12-18 3 views
0

У меня есть скрипт Robocopy, который я использую. Что я хочу знать, так это то, что я могу исключить все файлы, начинающиеся с com_, вместо определенного файла во время операции с зеркалом. Любые предложения действительно оценены.Исключая файлы в robocopy с помощью VBScript

Const ROBOCOPY_PARMS_MIRROR = "/mir /r:1 /w:3 /np /xa:SH /tee /np" 
Const ROBOCOPY_PARMS_EXCLUDE_DIR = "bin" 
Const ROBOCOPY_PARMS_EXCLUDE_FILE = "com_.txt" 
Const sourcePath = "C:\copy1" 
Const destinationPath = "C:\copy" 
roboCopyParms = ROBOCOPY_PARMS_MIRROR 
Set WshNetwork = WScript.CreateObject("WScript.Network") 
Set WshShell = WScript.CreateObject("WScript.Shell") 
cmd = "robocopy " & sourcePath & " " & destinationPath & " " & roboCopyParms & " /xd " & ROBOCOPY_PARMS_EXCLUDE_DIR & " /xf " & ROBOCOPY_PARMS_EXCLUDE_FILE 
ret = WshShell.Run(cmd, 0, true) 
WScript.Echo ret 

Благодаря

+1

(Try) использовать '/ XF ExFile Исключает файлы, соответствующие заданные имена, путь, или подстановочные знаки .' option –

+0

вы можете показать, как это сделать в скрипте. Я не уверен, что вы имели в виду. – user505210

+0

получил ответ. Все, что нам нужно сделать, это сделать имя файла как com_ *, а затем оно исключает все. – user505210

ответ

0

Обойти это, чтобы создать свой собственный ROBOCOPY скрипт:

Dim fso 
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 

RoboCopy "C:\copy","C:\copy1" 

Function RoboCopy(source,dest) 

    Set sourceFolder = fso.GetFolder(source) 

    If Not(fso.FolderExists(dest)) Then 
    fso.CreateFolder(dest) 
    End If 

    For Each file In sourceFolder.Files 
    If Left(file.Name,3)<>"com" Then 
     fso.CopyFile file.Path,dest & "\" & file.Name 
    End If 
    Next 

    For Each subfolder In sourceFolder.SubFolders 
    RoboCopy source & "\" & subfolder.Name,dest & "\" & subfolder.Name 
    Next 

End Function 
Смежные вопросы