VB.net を使用して、ASP.net ページ内で複数の perl スクリプト (約 2 ~ 5) を実行しています。スクリプトは問題なく実行されています。スクリプトは、UNIX サーバーの DNS 名とその他の情報を返し、正しく構成されていることを確認します。
Perl の結果を VB.net に出力して、メイン ページに結果を表示できるようにする必要があります (成功/失敗に応じて色分けされます)。
助言がありますか?
編集:私のコードを表示する
If rdoUnix.Checked Then
runUnixScript("testScript.pl", UNIXUSERNAME, UNIXPASSWORD)
End If
End If
End Sub
Public Sub runUnixScript(ByVal SCRIPT As String, ByVal UNIXUSERNAME As String, ByVal UNIXPASSWORD As String)
Dim COMPUTERNAME As String = FQDN.Text
Dim virtualFolder As String = "~/Scripts"
Dim physicalFolder As String = Server.MapPath(virtualFolder)
Dim processCmdFileTransfer As String = "/K C:\pscp.exe -pw " & UNIXPASSWORD & " " & physicalFolder & "\" & SCRIPT & " " & UNIXUSERNAME & "@" & COMPUTERNAME & ":" & SCRIPT
Dim processCmdFileActions As String = "-ssh -pw " & UNIXPASSWORD & " " & UNIXUSERNAME & "@" & COMPUTERNAME & "XX" & SCRIPT
' Transfers Script, Makes it executable, Runs Script and then deletes script
RunProcess("C:\Windows\System32\cmd.exe", processCmdFileTransfer, SCRIPT)
RunProcess("C:\plink.exe", processCmdFileActions, SCRIPT, " chmod u+x ./")
RunProcess("C:\plink.exe", processCmdFileActions, SCRIPT, " ./")
RunProcess("C:\plink.exe", processCmdFileActions, SCRIPT, " rm ./")
End Sub
Public Sub RunProcess(ByVal processPath As String, ByVal startInfo As String, ByVal script As String, Optional ByVal command As String = "")
Dim Proc As New System.Diagnostics.Process
Proc.StartInfo = New ProcessStartInfo(processPath)
If (InStr(startInfo, "XX") > 0) And (command <> "") Then
startInfo = startInfo.Replace("XX", command)
End If
Proc.StartInfo.Arguments = startInfo
Proc.StartInfo.RedirectStandardInput = True
Proc.StartInfo.RedirectStandardOutput = False
Proc.StartInfo.UseShellExecute = False
Proc.StartInfo.CreateNoWindow = True
Proc.Start()
Proc.WaitForExit()
End Sub