如何从C#控制台应用程序启动带有参数的本地VBScript?

如何从C#控制台应用程序启动带有参数的本地VBScript?,c#,.net,vbscript,console,C#,.net,Vbscript,Console,我有一个用最新的.NET框架构建的C#控制台应用程序 如何从应用程序中启动/启动带有参数的本地.vbs文件(示例): "C:/my folder/import.vbs" agr1 agr2 如果不希望显示弹出窗口,请使用cscript.exe启动它,否则可以使用wscript: cscript import.vbs agr1 agr2 您可以通过使用System.Diagnostics.Process.Start和ProcessStartInfo对象从C#执行此操作: var si = ne

我有一个用最新的.NET框架构建的C#控制台应用程序

如何从应用程序中启动/启动带有参数的本地.vbs文件(示例):

"C:/my folder/import.vbs" agr1 agr2

如果不希望显示弹出窗口,请使用cscript.exe启动它,否则可以使用wscript:

cscript import.vbs agr1 agr2
您可以通过使用System.Diagnostics.Process.Start和ProcessStartInfo对象从C#执行此操作:

var si = new System.Diagnostics.ProcessStartInfo() { WorkingDirectory = @"C:\temp\", Arguments = "import.vbs arg1 arg2", FileName="cscript.exe" };
var proc = System.Diagnostics.Process.Start(si);
proc.WaitForExit();
您也可以直接启动import.vbs,Windows将使用默认脚本主机执行它。只需按如下方式调整此行:

var si = new System.Diagnostics.ProcessStartInfo() { WorkingDirectory = @"C:\temp\", Arguments = "arg1 arg2", FileName="import.vbs" };
默认脚本引擎是wscript,这意味着如果脚本有弹出窗口,它们将被显示,并将导致脚本停止,等待用户确认/交互

如果通过cscript启动它,则脚本生成的任何弹出窗口都将被抑制

你可以用。我过去在脚本中使用过它

static void Main(string[] args)
    {
        Process process = new Process();
        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = @"C:\my folder\import.vbs";
        start.Arguments = "agr1 agr2";
        process.StartInfo = start;
        process.Start();
    }
System.Diagnostics.Process.Start(
    @"C:\my folder\import.vbs",
    String.Format("{0} {1}", agr1, agr2));