目前,在我的C#代码中,我引用了一个运行批处理文件的VBS文件。我这样做是因为它隐藏了CMD窗口(防止在执行过程中被看到)。我遇到了权限问题,其中PC无法执行VBS文件。
无论如何,我是否可以在C#中复制VBS代码?
这是代码:
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c LayoutsBackup.bat"
oShell.Run strArgs, 0, false
最佳答案
您可以在新的控制台项目中尝试以下代码。使用F10逐步解决问题,让我知道是否有帮助。
using System;
using System.Diagnostics;
namespace ConsoleApplication13
{
class Program
{
static void Main(string[] args)
{
//Set oShell = CreateObject("Wscript.Shell")
var shellType = Type.GetTypeFromProgID("Wscript.Shell");
dynamic shell = Activator.CreateInstance(shellType);
//Dim strArgs
//strArgs = "cmd /c LayoutsBackup.bat"
//oShell.Run strArgs, 0, false
var startArgs = new ProcessStartInfo
{
Arguments = @"/c ""C:\YourPathTo\LayoutsBackup.bat""", FileName = "cmd",
UseShellExecute = false
};
var shellProcess = Process.Start(startArgs);
shellProcess.WaitForExit(); /* optional */
}
}
}