1

我正在使用 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
4

1 回答 1

1

尝试使用输出重定向重定向已执行代码的输出。

只需在以下行中将 perl 可执行文件的路径传递给 perlscript

 Dim psI As New ProcessStartInfo("PERL_INSTALLED\\perl.exe SCRIPT_DIR\\MyScript.pl");
于 2012-08-06T19:16:52.300 回答