感谢阅读/帮助。在旧的 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
变量:qpdf 变量:c:\WINDOWS\system32\qpdf.exe
PATH的相关部分:
%SystemRoot%\system32;
C:\Program Files\Utils\xpdf\;
C:\实用程序\;
但是,够有趣的:
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。感谢您的帮助 :-)