目前,在我的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 */
        }
    }
}

10-06 15:34