gpt4 book ai didi

asp.net - 在 Windows Shell 中转义传递给 perl 脚本的参数

转载 作者:行者123 更新时间:2023-12-04 23:57:01 25 4
gpt4 key购买 nike

我有一个供应商提供的 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)

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

最佳答案

应该像这样直接调用 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 中对其进行编码)。

关于asp.net - 在 Windows Shell 中转义传递给 perl 脚本的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com