次のvbscriptを実行してsvnadminダンプを呼び出すと失敗します(つまり、ダンプが作成されていません)
Set objShell = CreateObject("WScript.Shell")
Set objShellExec = objShell.Exec("svnadmin dump C:\svn_repos > C:\fullbackup")
別の投稿から、svndumpがWScript.Shellで失敗することを発見しました。次のようにcmdを使用して新しいコマンドインタープリターを作成する必要がありました。
Set objShellExec = objShell.Exec("%comspec% /c" & "svnadmin dump C:\svn_repos > C:\fullbackup")
これにより、ダンプは正常に作成されましたが、出力情報を読み取ることができませんでした(つまり、*ダンプされたリビジョン100。*ダンプされたリビジョン101など)。私は試した
Do While objWshScriptExec.Status = 0
Wscript.Echo objShellExec.StdOut.Readline
Wscript.Echo objShellExec.StdErr.Readline
WScript.Sleep 100
Loop
しかし、何も表示されません。
出力情報を読み取る方法と、svnadmin dumpコマンドが正しく実行される前に「%comspec%/c」を使用して新しいコマンドインタープリターを作成する必要がある理由を教えてください。ありがとう。
よろしく、デクストン
編集されたコード:
Set objShell = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
strOutput = "c:\svn_backup\fullbackupa"
Set objOutFile = objFS.CreateTextFile(strOutput,True)
Set objShellExec = objShell.Exec("%comspec% /c " & "svnadmin dump C:\svn_repos")
Do While objShellExec.Status = 0
stdoutline=objShellExec.StdOut.Readline
'Wscript.Echo stdoutline 'echo to standard output
Wscript.Echo objShellExec.StdErr.Readline
objOutFile.WriteLine(stdoutline & vbCrLf) 'write to file at the same time
WScript.Sleep 100
Loop
objOutFile.Close
解決:
Set objShell = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
strOutput = "c:\svn_backup\fullbackupa"
Set objOutFile = objFS.CreateTextFile(strOutput,True)
Set objShellExec = objShell.Exec("%comspec% /c " & "svnadmin dump C:\svn_repos > c:\svn_backup\fullbackupb")
Do While objShellExec.Status = 0
stdoutline=objShellExec.StdErr.Readline
Wscript.Echo stdoutline 'echo to standard output
'Wscript.Echo objShellExec.StdErr.Readline
objOutFile.WriteLine(stdoutline & vbCrLf) 'write to file at the same time
WScript.Sleep 100
Loop
objOutFile.Close