我有一个由供应商提供的perl脚本,它需要一系列参数。我想通过ASP classic中的Windows Shell对象来调用它。
如果我在Web服务器上的cmd行中键入以下内容,它可以正常工作:
path_to_perl\perl.exe path_to_pl\myfile.pl --arg1 "something" --arg2 "somethingelse"
如果我在ASP classic中执行以下操作,则不起作用:
strCMD = "path_to_perl\perl.exe path_to_pl\myfile.pl --arg1 ""something"" --arg2 ""somethingelse"""
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("cmd.exe /c " & strCMD)
问题是论证有各种特殊字符,所以我需要引用它们。我已经阅读了有关如何逃避它们的相互矛盾的信息 - 通过插入符号或反斜杠。任何帮助将不胜感激!
答案 0 :(得分:0)
Shoulf直接打电话给Perl,就像这样:
system_call_test( 'c:/complete/path_to_pl/myfile.pl --arg1 "something" ... ' )
请参阅此处的讨论: How to call perl programs from ASP page
特别是 Charles K. Clarkson 的答案。
它将简化问题,因为您不必处理转义符号 对于ASP,CMD和Perl - 所有这些都是在同一时间。
(在那次讨论中,问题是Perl脚本的语法错误,最终, 但它仍然显示如何在ASP中编写代码。