3

ベンダーから提供された、一連のパラメーターを使用する perl スクリプトがあります。ASP クラシックの Windows シェル オブジェクトを介してこれを呼び出したいと思います。

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プログラムを呼び出す方法 と、特にチャールズK.クラークソン
の回答をここで参照してください。


ASP、CMD、および Perl のエスケープ文字を同時に処理する必要がないため、問題が単純化されます。

(その議論では、問題は最終的に Perl スクリプトの構文エラーでしたが
、ASP でコーディングする方法を示しています)。

于 2012-07-19T11:44:47.080 に答える