Запустите код командной строки программно

Я использую этот код запуска в командной строке Windows.. Но мне нужно это сделать программно с использованием кода C#, пожалуйста, помогите

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -pdf "Строки соединения" "C:\Users\XXX\Desktop\ Строка соединения \DNN"

4 ответа

Решение

Вы можете использовать Process.Start метод:

Process.Start(
    @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe",
    @"-pdf ""connection Strings"" ""C:\Users\XXX\Desktop\connection string\DNN"""
);

или если вы хотите получить больший контроль над оболочкой и иметь возможность захватывать, например, стандартный вывод и ошибки, которые вы можете использовать the overload принимая ProcessStartInfo:

var psi = new ProcessStartInfo(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe")
{
    Arguments = @"-pdf ""connection Strings"" ""C:\Users\XXX\Desktop\connection string\DNN""",
    UseShellExecute = false,
    CreateNoWindow = true
};
Process.Start(psi);

Попробуй это

ExecuteCommand("Your command here");

назвать это с помощью процесса

 public void ExecuteCommand(string Command)
    {
        ProcessStartInfo ProcessInfo;
        Process Process;

        ProcessInfo = new ProcessStartInfo("cmd.exe", "/K " + Command);
        ProcessInfo.CreateNoWindow = true;
        ProcessInfo.UseShellExecute = true;

        Process = Process.Start(ProcessInfo);
    }

Вы должны быть в состоянии сделать это с помощью процесса

        var proc = new Process();
        proc.StartInfo.FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe ";
        proc.StartInfo.Arguments = string.Format(@"{0} ""{1}""" ""{2}""","-pdf","connection Strings" ,"C:\Users\XXX\Desktop\connection string\DNN");
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.Start();
        string outPut = proc.StandardOutput.ReadToEnd();

        proc.WaitForExit();
        var exitCode = proc.ExitCode;
        proc.Close();

Я хотел бы добавить к ответу Microsoft DN, что вам может потребоваться включить using System.Diagnostics наверху для ProcessStartInfo разрешить правильно.

Другие вопросы по тегам