2013-04-23 164 views
1

我所要做的就是能够从后面的代码运行VBS脚本,但我得到这个错误:“系统找不到指定的文件”。我知道路径名,我只需要执行.vbs脚本,但它给了我很多时间,我无法弄清楚。请帮忙。在这里感谢 是我的代码如何从C#代码运行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

您的代码为我工作很好,我认为错误是你的文件路径

更好确认您指定的文件路径是否有效 ..

您可以运行文件中像下面还..

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(); 

检查你的文件路径你给..

+0

我认为这工作正常,没有问题,但如果你可以告诉我,如果我想运行位于另一台服务器上的VBS脚本,我会如何做到这一点?我假设我必须提供用户名和密码,但不要命名如何修改此代码?谢谢 – moe 2013-04-23 16:38:30

+0

@moe - 较新版本的Windows需要您授权这样的运行脚本文件。更新您的问题以反映此信息。 – 2013-04-23 17:12:25

3

参数必须单独包含。有一个参数字段用于将参数传递给进程。

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

+0

kevin我刚刚更新了我的初始职位,请参阅上文。在我能够执行脚本之前,我收到警告。谢谢 – moe 2013-04-23 16:27:33

+0

对于踢腿,尝试将vbs脚本移动到本地驱动器,看看是否摆脱它。 – kemiller2002 2013-04-23 17:09:56