3

我有一个供应商提供的 perl 脚本,它带有一系列参数。我想通过 ASP 经典中的 Windows Shell 对象来调用它。

如果我在 Web 服务器的 cmd 行中键入以下内容,它就可以正常工作:

path_to_perl\perl.exe path_to_pl\myfile.pl --arg1 "something" --arg2 "somethingelse"

如果我在 ASP 经典中执行以下操作,它将不起作用:

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)

问题是参数有各种特殊字符,所以我需要引用它们。我已经阅读了关于我应该如何逃避它们的相互矛盾的信息——通过插入符号或反斜杠。任何帮助将不胜感激!

4

1 回答 1

0

应该直接调用 Perl,像这样:

system_call_test( 'c:/complete/path_to_pl/myfile.pl --arg1 "something" ... ' )

请参阅此处的讨论:如何从 ASP 页面调用 perl 程序, 特别是此处的Charles K. Clarkson
的答案。

它将简化问题,因为您不必同时处理
ASP、CMD 和 Perl 的转义字符。

(在那次讨论中,问题最终是 Perl 脚本的语法错误,
但它仍然显示了如何在 ASP 中对其进行编码)。

于 2012-07-19T11:44:47.080 回答