在我的c#中,我当前引用了一个运行批处理文件的vbs文件。我这样做是因为它隐藏了cmd窗口(防止在执行过程中看到它)。我遇到了电脑不会vbs文件的权利问题。无论如何,我有复制在C#中的VBS代码?如何在C#中添加vbs代码
下面是代码
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c LayoutsBackup.bat"
oShell.Run strArgs, 0, false
在我的c#中,我当前引用了一个运行批处理文件的vbs文件。我这样做是因为它隐藏了cmd窗口(防止在执行过程中看到它)。我遇到了电脑不会vbs文件的权利问题。无论如何,我有复制在C#中的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 */
}
}
}
您可能需要完整的cmd和bat文件的路径名。 – jdweng
@jdweng可能!在我的笔记本电脑上没有。 Win 7 Ent。你也可以尝试“win.exe”。对我而言,这也是有效的。 –
@jdweng您的意思是.bat文件必须位于控制台应用程序的bin \ Debug目录中?我同意。我编辑了答案。谢谢 –
[的Process.Start](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiM_8jy8t7VAhVkzVQKHfK4C58QFggvMAE&url=https%3A%2F% 2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.diagnostics.process.start(v%3Dvs.110).aspx&usg = AFQjCNGlAKjUTat56iCorFFRRQ-DH8TPdQ) – crashmstr