Я получил следующий тестовый код vbscript, который сжимает некоторые тестовые файлы через командную строку WinZip:
Dim strWinZipDir, strZipFileToCreate, strFilesToZip, strWinZip, strCommand
strWinZipDir = "C:\Program Files\WinZip\Winzip32.exe"
strZipFileToCreate = "C:\Users\ext_dirmod_01\Desktop\TestLog.zip"
strFilesToZip = """C:\Users\ext_dirmod_01\Desktop\FacturasGRA.vbs"" ""C:\Users\ext_dirmod_01\Desktop\Test Zip Windows.vbs"""
Set objFSO = CreateObject("Scripting.FileSystemObject")
strWinZip = objFSO.GetFile(strWinZipDir).ShortPath
strCommand = strWinzip & " -min -a -r """ & strZipFileToCreate & """ " & strFilesToZip
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec(strCommand)
Do While objExec.Status = 0
Loop
Что я хочу сделать, так это зарегистрировать запуск процесса zip как для успешного завершения, так и для появления ошибок. В случае ошибки я хочу получить точное сообщение, которое возвращает WinZip.
Я пробовал несколько способов:
- Добавление знака больше (
>
) с именем файла в конце командной строки, как было предложено в эта ссылка. Этот метод ничего не записывает в файл. - Также я попытался получить STDOUT и STDERR выполнения оболочки, но он возвращает пустую строку.
Кто-нибудь знает, что еще я могу/должен попробовать?