我尝试使用ghostscript为扫描的PDF文件设置特定的页面大小。我可以在脚本与可执行文件位于同一文件夹中时运行该脚本但是当我将.vbs文件移出目录时我无法使其工作。 .run行是我遇到问题的地方。不带参数的exe路径的三重引号打开exe,但我无法弄清楚如何传递参数。 我相信你可以看到我对此很陌生。
strInput = InputBox ("Enter 1 for Landscape or 2 for portrait:")
Set objShell = WScript.CreateObject("WScript.Shell")
If strInput=1 then
Call LandScape
ElseIf strInput=2 Then
Call Portrait
Else
MsgBox "Your entry is invalid. Click OK to exit"
End If
景观子程序:
Sub LandScape
MsgBox "Your images are Landscape"
objShell.Run """c:\Program Files\gs\gs9.04\bin\gswin64c.exe""& "-dQUIET"&" -dNOPAUSE"&" -dBATCH"&" -dDEVICEWIDTHPOINTS=2592"&" -dDEVICEHEIGHTPOINTS=1728"&" -dFIXEDMEDIA"&" -sDEVICE=pdfwrite"&" -sOutputFile=OUTPUT.pdf"&" INPUT.pdf""
'This line works when in same directory: gswin64c -dQUIET -dNOPAUSE -dBATCH -dDEVICEWIDTHPOINTS=2592 -dDEVICEHEIGHTPOINTS=1728 -dFIXEDMEDIA -sDEVICE=pdfwrite -sOutputFile=OUTPUT.pdf INPUT.pdf
End Sub
答案 0 :(得分:0)
WScript.Shell.Run()
的第一个参数是一个完整的命令行。所以你需要
您现在可以推断出objShell.Run
行的正确语法吗?
答案 1 :(得分:0)
引号可能会引起混淆,因此有时使用Chr(34)
会有所帮助,并使可执行文件与其参数分开。
strExe = "c:\Program Files\gs\gs9.04\bin\gswin64c.exe"
strParams = "-dQUIET -dNOPAUSE -dBATCH -dDEVICEWIDTHPOINTS=2592 -dDEVICEHEIGHTPOINTS=1728 -dFIXEDMEDIA -sDEVICE=pdfwrite -sOutputFile=OUTPUT.pdf INPUT.pdf"
objShell.Run Chr(34) & strExe & Chr(34) & " " & strParams