如何从C#代码运行VBS脚本

时间:2013-04-23 16:09:05

标签: c#

我想要做的就是能够从后面的代码运行VBS脚本,但我收到此错误:“系统找不到指定的文件”。我知道路径名称,我只需要执行.vbs脚本,但它给了我很多时间,我无法弄明白。请帮忙。谢谢 这是我的代码

System.Diagnostics.Process.Start(@"cscript  //B //Nologo \\loc1\test\myfolder\test1.vbs");

我已经更新了如下所示的代码,但是我收到一个安全警告,询问我是否要打开它。有没有办法不得到那种警告,只是在没有任何警告的情况下运行脚本? 这是更新的代码:

  Process proc = null;
        try
        {
            string targetDir = string.Format(@"\\loc1\test\myfolder");//this is where mybatch.bat lies
            proc = new Process();
            proc.StartInfo.WorkingDirectory = targetDir;
            proc.StartInfo.FileName = "test1.vbs";
            proc.StartInfo.Arguments = string.Format("10");//this is argument
            proc.StartInfo.CreateNoWindow = false;
            proc.Start();
            proc.WaitForExit();
        }
        catch (Exception ex)
        {
           // Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
        }

2 个答案:

答案 0 :(得分:3)

参数必须单独包含。您可以使用参数字段将参数传递给流程。

您可以将此作为执行programs with command line from an application的指南。

答案 1 :(得分:3)

您的代码对我来说很好,我认为错误发生在您的文件路径中

更好确认您提供的文件路径有效或不是 ..

您也可以像下面那样运行该文件。

Process scriptProc = new Process();
scriptProc.StartInfo.FileName = @"cscript"; 
scriptProc.StartInfo.Arguments ="//B //Nologo \\loc1\test\myfolder\test1.vbs";
scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
scriptProc.Start();
scriptProc.WaitForExit();
scriptProc.Close();

但是检查你给出的文件路径 ..