2016-08-12 7 views
0

私はこれまでには動作していなかったバックアップのRCのためのこの1つのVBSスクリプトを持っています。バックアップのRobocopyのためのVBSスクリプト

StrDatum = Day(Now) & "." & Month(Now) & "." & Year(Now) 
Const ForReading = 1 
Const ForWriting = 2 
Const ForAppending = 8 
Const OverwriteExisting = True 
StrRobocopyOptions= "/E /B /R:0 /W:0 /V /NP" 
StrConfigFilePath = "C:\Tools\Backup\backupJobs.cfg" 
StrRobocopyExePath = "C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" 

strServerBackupPath = "\\midaserver\KNJIGOVODSTVO" 
StrServweLogPath = "\\midaserver\KNJIGOVODSTVO\logs" 
strComputer = "." 

Set objShell = CreateObject ("wscript.shell") 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colComputer = objWMIService.ExecQuery _ 
    ("Select * from Win32_ComputerSystem") 

For Each objComputer in colComputer 
    strComputerName = objComputer.Caption 
Next 




Set objFSO = CreateObject ("Scripting.FileSystemObject") 
Set objReadConfFile = objFSO.OpenTextFile (StrConfigFilePath,ForReading) 
"Set objRobocopyStatusWriter = objFSO.OpenTextFile (strServerBackupPath & "\\" & strComputerName & "\copy_status_tst.log",ForWriting,OverwriteExisting) 
objRobocopyStatusWriter.Write "Started > " & StrDatum & " > " 
Do Until (objReadConfFile.AtEndOfStream = True) 

strSourceFolder = Trim(objReadConfFile.ReadLine) 
strCommand = StrRobocopyExePath & " " & StrRobocopyOptions & " " & """" & strSourceFolder & """" & " " & """" & strServerBackupPath & "\" & strComputerName & "\" & imeDira(strSourceFolder) & """" 

Set objRobocopyLogWriter = objFSO.OpenTextFile (StrServweLogPath & "\" & strCompuerName & "-" & imeDira(strSourceFolder) & ".log" ,ForWriting,OverwriteExisting) 

Set objScriptExec = objShell.Exec (strCommand) 

    Do While Not objScriptExec.StdOut.AtEndOfStream 
     strLinija = objScriptExec.StdOut.ReadLine 
     objRobocopyLogWriter.WriteLine strLinija 
    loop 

strCommand = "" 
objRobocopyLogWriter.Close 

Loop 
objRobocopyStatusWriter.Write "Finished" 
objRobocopyStatusWriter.Close 
Function imeDira(putanja) 
    arrSubIme = Split(putanja,"\") 
    imeDira = arrSubIme(UBound(arrSubIme)) 
End Function 

私はそれを実行すると、次のエラーをappers:

スクリプト:\ mida5 \ C $ \バックアップ\ BackupiListFolders.vbs ライン:29 文字:1 エラー:パスが見つかりません コード: 800A004C ソース:Microsoft VBScriptランタイムエラー

+0

代わりにそれをエミュレートしようとしているの[ '/ log'パラメータ](https://technet.microsoft.com/de-de/library/cc733145%28v=ws.10%29.aspx)を使用します。 –

+0

ハム、どうして分かりませんか? –

+0

'robocopy'は単独でログを作成することができます(リンク先のドキュメントを参照)。手動で行う必要はありません。エラーメッセージについては、設定ファイル 'C:\ Tools \ Backup \ backupJobs.cfg'を見つけることができません。 –

答えて

0

robocopyがログを記録します。

Function qq(str) 
    qq = """" & str & """" 
End Function 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set sh = CreateObject("WScript.Shell") 

src = "C:\source\folder" 
dst = "\\server\share\target\folder" 

logfile = "C:\path\to\your.log" 

cmd = "robocopy.exe " & qq(src) & " " & qq(dst) & _ 
     " /e /b /r:0 /w:0 /v /np /log:" & qq(logfile) 

status = sh.Run(cmd, 0, True) 
If status = 0 Then 
    WScript.Echo "Backup complete." 
Else 
    WScript.Echo "Backup failed." 
End If 
関連する問題