En C # WPF: Je veux exécuter une commande CMD, comment puis-je exécuter une commande cmd par programme?
Voici un exemple simple:
Process.Start("cmd","/C copy c:\\file.txt lpt1");
Comme mentionné par les autres réponses, vous pouvez utiliser:
Process.Start("notepad somefile.txt");
Cependant, il existe un autre moyen.
Vous pouvez par exemple un objet Process et appeler la méthode d'instance Start:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.WorkingDirectory = "c:\temp";
process.StartInfo.Arguments = "somefile.txt";
process.Start();
En procédant ainsi, vous pouvez configurer plus d'options avant de lancer le processus. L'objet Processus vous permet également de récupérer des informations sur le processus en cours d'exécution et vous avertit (via l'événement Exited) de la fin du processus.
Ajout: N'oubliez pas de définir 'process.EnableRaisingEvents' sur 'true' si vous souhaitez associer l'événement 'Exited'.
Utiliser Process.Start :
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("example.txt");
}
}
si vous voulez démarrer une application avec cmd, utilisez ce code:
string YourApplicationPath = "C:\\Program Files\\App\\MyApp.exe"
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.WindowStyle = ProcessWindowStyle.Hidden;
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = Path.GetDirectoryName(YourApplicationPath);
processInfo.Arguments = "/c START " + Path.GetFileName(YourApplicationPath);
Process.Start(processInfo);
Que diriez-vous de créer un fichier de commandes avec la commande souhaitée et de l’appeler avec Process.Start
contenu dir.bat:
dir
puis appelez:
Process.Start("dir.bat");
Appelle le fichier bat et exécute le répertoire
Vous pouvez l'utiliser pour travailler cmd in C # :
ProcessStartInfo proStart = new ProcessStartInfo();
Process pro = new Process();
proStart.FileName = "cmd.exe";
proStart.WorkingDirectory = @"D:\...";
string arg = "/c your_argument";
proStart.Arguments = arg;
proStart.WindowStyle = ProcessWindowStyle.Hidden;
pro.StartInfo = pro;
pro.Start();
N'oubliez pas d'écrire/c avant votre argument !!
Argh: D pas le plus rapide
Process.Start("notepad C:\test.txt");
Vous demandez comment faire apparaître une fenêtre de commande? Si c'est le cas, vous pouvez utiliser l'objet Processus ...
Process.Start("cmd");
En plus des réponses ci-dessus, vous pouvez utiliser une petite méthode d'extension:
public static class Extensions
{
public static void Run(this string fileName,
string workingDir=null, params string[] arguments)
{
using (var p = new Process())
{
var args = p.StartInfo;
args.FileName = fileName;
if (workingDir!=null) args.WorkingDirectory = workingDir;
if (arguments != null && arguments.Any())
args.Arguments = string.Join(" ", arguments).Trim();
else if (fileName.ToLowerInvariant() == "Explorer")
args.Arguments = args.WorkingDirectory;
p.Start();
}
}
}
et l'utiliser comme ça:
// open Explorer window with given path
"Explorer".Run(path);
// open a Shell (remanins open)
"cmd".Run(path, "/K");