首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决相互排斥的"UseShellExecute“和"RedirectStandardOutput”问题

解决相互排斥的"UseShellExecute“和"RedirectStandardOutput”问题
EN

Stack Overflow用户
提问于 2017-03-14 15:00:04
回答 1查看 310关注 0票数 2

我需要一个与在互斥的UseShellExecute和RedirectStandardOutput上使用True相同效果的解决方案。我之所以需要这样做,是因为我希望像通过CMD.exe那样执行perl脚本:

代码语言:javascript
复制
perl perlcompare.pl <file1> <file2> <file3>

注意到将"perl“放在前面似乎是可选的,因为该文件已经是一个.pl文件。

我希望能够访问运行给我的输出,因为可能有对用户很重要的错误消息(例如缺少文件)。还有其他方法可以做到这一点吗?

代码语言:javascript
复制
    Dim myProcess As New System.Diagnostics.Process
    myProcess.StartInfo.WorkingDirectory = "K:\Engineering\Temp\perl"
    myProcess.StartInfo.UseShellExecute = True
    myProcess.StartInfo.FileName = "perlcompare.pl"
    myProcess.StartInfo.Arguments = """" & MasterFile & """" & " " & """" & MasterOutput & """" & " " & """" & ComparisonsOutput & """"
    myProcess.StartInfo.RedirectStandardOutput = True
    myProcess.Start()

    Dim sOutput As String
    Using ProcessStreamReader As System.IO.StreamReader = myProcess.StandardOutput
        sOutput = ProcessStreamReader.ReadToEnd()
    End Using

    MessageBox.Show(sOutput)   'txtOutput being the output textbox.

我对语言和学习都很陌生,所以我会寻找你为我提供的任何线索。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 15:32:11

我不明白为什么要将UseShellExecute设置为true。它需要是假的,才能允许标准IO通道的重定向。

如果perl编译器可执行文件的位置在PATH中,则只需将FileName设置为perl即可。使用String.Format从变量构建字符串也比使用所有转义引号和连接更好

代码语言:javascript
复制
Dim myProcess As New System.Diagnostics.Process
myProcess.StartInfo.WorkingDirectory = "K:\Engineering\Temp\perl"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.FileName = "perl"
myProcess.StartInfo.Arguments = String.Format(
        "perlcompare.pl ""{0}"" ""{1}"" ""{2}""",
        MasterFile,
        MasterOutput,
        ComparisonsOutput)
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.Start()

如果perl编译器的位置不在路径中,则只需将一个完全限定的文件路径放入FileName

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42789463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档