如何从C#托管代码调用VBS脚本

时间:2013-03-28 18:47:25

标签: c# .net vbscript

你会认为这很简单...... 从命令行我可以执行

c:\windows\system32\cscript c:\windows\system32\iisext.vbs /ListFile

但是当我从托管代码中尝试时...

Process proc = new Process();
proc.StartInfo.FileName = @"c:\windows\system32\cscript";
proc.StartInfo.Arguments = @"c:\windows\system32\iisext.vbs /ListFile";
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
using (StreamReader sr = proc.StandardOutput) {
...

我收到此错误:

  

输入错误:找不到脚本文件   “C:\ Windows \ System32下\的Iisext.vbs”

我错过了什么?

由于

1 个答案:

答案 0 :(得分:2)

汉斯是正确的;问题几乎可以肯定是你在32位模式下运行,这意味着C:\ windows \ system32并没有指向你的想法。 (通过使用Process Monitor观察文件访问来验证)。

改为使用C:\ windows \ sysnative,或者将您的应用编译为目标AnyCPU。