【问题标题】:How to delay command execution如何延迟命令执行
【发布时间】:2011-08-04 23:30:40
【问题描述】:

如何让程序等到 shell 命令完成?例如:

Shell("format")
Console.WriteLine("Finished")

在本例中,“Finished”行首先被写入,然后才开始 shell 函数。如何先启动shell函数,完成后才写“Finished”行?

【问题讨论】:

  • @dtb 同示例
  • 选择一种语言。是 C# 还是 VB.Net?

标签: c# .net vb.net shell


【解决方案1】:

Shell可以带一个参数指定是否等待程序完成:

Shell("format", Wait:=True)

【讨论】:

    【解决方案2】:

    使用进程和cmd.exe

    var psi = new ProcessStartInfo("cmd.exe");
    psi.WindowStyle = ProcessWindowStyle.Hidden;
    psi.Arguments = @"/C cd C:\windows\system32 && dir";
    var proc = Process.Start(psi);
    proc.WaitForExit()
    
    Console.WriteLine("Finished!");
    

    /C 参数位于您要运行的任何命令的开头,表示 shell 将运行该命令,然后在完成时退出。

    【讨论】:

      【解决方案3】:

      也许你需要这样的东西:

      System.Diagnostics.Process.Start("C:\bla.exe").WaitForExit();
      

      【讨论】:

        【解决方案4】:

        看看Process Class。然后使用Process.WaitForExit Method 等待你创建的进程退出。

        【讨论】:

          【解决方案5】:

          我想你可以使用Process 类。

          创建流程实例并在流程存在时附加事件处理程序。

          http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx#Y200

          【讨论】:

            【解决方案6】:

            在互联网上快速搜索“Microsoft.VisualBasic.Interaction.Shell”。

            我发现了这个:MSDN microsoft.visualbasic.interaction.shell

            它告诉我:

            参数

            等一下

            Type: System.Boolean
            

            可选。布尔值。一个值,指示是否有 Shell 函数 应该等待程序完成。如果 Wait 被省略,Shell 使用 False。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-04-05
              • 1970-01-01
              • 2014-06-22
              • 2018-09-12
              • 1970-01-01
              • 1970-01-01
              • 2012-04-19
              相关资源
              最近更新 更多