Wpf 从vb.net运行cmd命令问题

Wpf 从vb.net运行cmd命令问题,wpf,vb.net,shell,cmd,processstartinfo,Wpf,Vb.net,Shell,Cmd,Processstartinfo,我正在尝试在单击事件中运行以下代码。但是,因为它在cmdshell中执行命令,我不知道为什么它不会运行。我能做的是以管理员身份打开cmd.exe,对参数进行注释。以及将这些参数粘贴到.bat文件中,然后从process.start运行 但是,为什么我不能用参数运行shell?我更喜欢这种方法,而不是将参数放在.bat文件中 Dim process As New System.Diagnostics.Process() Dim startInfo As New System

我正在尝试在单击事件中运行以下代码。但是,因为它在cmdshell中执行命令,我不知道为什么它不会运行。我能做的是以管理员身份打开cmd.exe,对参数进行注释。以及将这些参数粘贴到.bat文件中,然后从process.start运行

但是,为什么我不能用参数运行shell?我更喜欢这种方法,而不是将参数放在.bat文件中

    Dim process As New System.Diagnostics.Process()
        Dim startInfo As New System.Diagnostics.ProcessStartInfo()
        ' startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden

        startInfo.FileName = "cmd.exe"
        If System.Environment.OSVersion.Version.Major >= 6 Then ' Windows Vista or higher
            startInfo.Verb = "runas"
        Else
            ' No need to prompt to run as admin
        End If
        startInfo.Arguments = "/C bcdedit /set {current} safeboot network"
        process.StartInfo = startInfo
        process.Start()

我明白了。我必须将bcdedit.exe复制到我的项目中。我原以为调用cmd.exe会转到bcdedit.exe所在的位置。

尝试使用
cmd.exe
的完整文件路径。所以startInfo.FileName=“cmd.exe/C bcdedit/set{current}safeboot network”?尝试更改/K中的/C,查看
bin
目录中是否有任何错误消息is
cmd.exe
?您是否收到任何错误消息?@Steve/K工作,但它从C:\Windows\SysWOW64\cmd.exe打开了cmd.exe。它提到bcdedit不是一个重新确认的命令。嗯,为什么它不在%windir%\system32\cmd.exe中打开cmd.exe程序呢?