Спасибо за чтение / помощь. На старом сервере win2003 в этом сценарии:
Const WshRunning = 0
Const WshFinished = 1
Const WshFailed = 2
Dim shell, exec, strOutput
Set shell = CreateObject("WScript.Shell")
Set exec = shell.Exec("cmd.exe /c echo hello world") ' << this line changes in each example
If exec.Status = WshFailed Then
strOutput = exec.StdErr.ReadAll
Else
strOutput = exec.StdOut.ReadAll
End If
response.write strOutput
я получаю идеальный ответ: «Мир ада», как в CMD, так и в ASP. также с
Set exec = shell.Exec("cmd.exe /c ping 127.0.0.1")
Опять же, идеальный ответ, как в CMD, так и в ASP.
Но мне нужно знать, насколько большой PDF. Итак, я попробовал 2 инструмента:
Set exec = shell.Exec("cmd.exe /c qpdf --show-npages c:\utils\b.pdf")
Set exec = shell.Exec("cmd.exe /c pdfinfo -v c:\utils\b.pdf")
Оба работают в cmd, он выводит то, что я хочу знать, но я не получаю ответа в asp. Оба инструмента имеют права IUSR. Что мне не хватает? Большое спасибо,
Алекс
Мои комментарии ниже правильно читаются:
Хороший вопрос. Я забыл упомянуть, что я включил в системные переменные:
var: pdfinfo val: c: \ Program Files \ Utils \ xpdf \ pdfinfo.exe
var: qpdf val: c: \ WINDOWS \ system32 \ qpdf.exe
соответствующая часть PATH:
% SystemRoot% \ system32;
C: \ Program Files \ Utils \ xpdf \;
C: \ utils \;
Но, как ни странно:
Set exec = shell.Exec("cmd.exe /c pdfinfo -meta c:\utils\b.pdf")
CMD.exe запускается, вот и все. Но, по вашему предложению, я попробовал также
Set exec = shell.Exec("cmd.exe /c ""c:\Program Files\Utils\xpdf\pdfinfo.exe"" -meta c:\utils\b.pdf")
: (иногда, не всегда) Process Explorer показывает, что pdfinfo также запускается cmd. Тем не менее, нет ответа на ASP. Спасибо за помощь: -)