2015-05-31 2 views
1

я получил следующий VBScript тестовый код, который пронестись несколько тестовых файлов с помощью WinZip Command Line:не удается войти 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 

То, что я хочу сделать, это войти прогон процесса зип как для успешного завершения и для появления ошибки/с. В случае ошибки я хочу получить точное сообщение, которое возвращает WinZip.

Я попробовал несколько способов:

  • Добавление больше, чем знак (>) с именем файла в конце командной строки, как это было предложено в this link. Этот метод ничего не пишет в файле.
  • Также я попытался получить STDOUT и STDERR выполнения оболочки, но он возвращает пустую строку.

Кто-нибудь знает, что еще я могу/должен попробовать?

ответ

0

Как @CheranShunmugavel указал в комментарии к другому ответу, статья базы знаний относится к WinZip Command Line utility. Если вы хотите работать с WinZip в командной строке, я настоятельно рекомендую вам получить это дополнение, хотя обычный исполняемый файл WinZip поддерживает some basic command line parameters.

Обратите внимание, что если вы хотите использовать перенаправление вывода (>) вы должны запускать команду в CMD, поскольку Перенаправление обеспечиваются командным интерпретатором. Для упрощенной обработки я бы также рекомендовал использовать метод Run, а не метод Exec, если вам не нужно программно читать STDOUT и/или STDERR.

Set objShell = CreateObject("WScript.Shell") 
rc = objShell.Run("cmd /c " & strCommand & " >C:\path\to\your.log 2>&1", 0, True) 

If rc <> 0 Then WScript.Echo "An error occurred (" & rc & ")." 
WScript.Quit rc 
0

Это графическая программа. Он не использует консоль. Поэтому вы не можете.

Если вы использовали оригинальные программы, вы найдете PKZip версии с командной строкой. https://www.pkware.com/software/pkzip

+1

Кроме того, статья KB, связанная с этим вопросом, касается «дополнения поддержки командной строки WinZip». Я не знаю, является ли это отдельная загрузка или опция при установке, но это еще один вариант для просмотра. –

+0

Winzip начал графическую программу, которая называлась программами Dos pkzip в Win 3.1. У PkZip есть утилита ZIP REPAIR, поэтому я ссылаюсь на них. –

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

  • Нет связанных вопросов^_^