system() en c# sans appel cmd.exe
comment traduire system("") à C# sans appel cmd.exe?
edit: j'ai besoin de jeter quelque chose comme "dir"
Oublier si tout ce que vous voulez faire est d'exécuter l'
dir
de commande. dir
est une commande de la cmd.exe
interpréteur de ligne de commande. Par conséquent, vous ne pouvez pas <strike>jeter</strike> execute cette commande sans démarrer cmd.exe
. Si vous êtes à la recherche d'une manière générale, pour traduire system()
appels à C#, avoir un regard sur les réponses ci-dessous.OriginalL'auteur user302823 | 2010-05-08
Vous devez vous connecter pour publier un commentaire.
Que d'autres gens de noter, c'est Processus.Démarrer. Exemple:
Process.Start(@"C:\myapp\foo.exe");
en tant que tel?OriginalL'auteur John Feminella
Si j'ai bien compris votre question, vous êtes à la recherche pour Processus.Démarrer.
Voir cet exemple (à partir de la documentation):
Modifier
Comme vous l'avez dit vous besoin de quelque chose comme la commande "dir", je vous suggère de jeter un oeil à DirectoryInfo. Vous pouvez l'utiliser pour créer votre propre liste de l'annuaire. Par exemple (également à partir de la documentation):
dir était juste un exemple je veux simuler cmd.exe
Quoi que vous tentiez d'obtenir avec le système, il est presque certainement une façon plus propre de le faire directement à partir de C/C#. système est une fonction à éviter.
OriginalL'auteur Fernando
Ne sais pas si j'ai bien compris votre question. Vous êtes à la recherche pour le Processus.Démarrer ?
OriginalL'auteur nc3b
Si vous devez exécuter des DIR, alors vous devez faire appel cmd.exe dir est interne à cmd.exe
OriginalL'auteur Joshua
Ne vous fait voulez l'équivalent? Vous ne pouvez pas en fonction de ce que vous essayez de faire.
Par exemple un appel à
copy
à partir de la ligne de commande a a C# équivalent à lui-même,Fichier.Copie
, pourdir
il y a tout unDirectory
classe pour obtenir de l'info (ceux-ci sont un moyen rapide 2 des milliers d'exemples). En fonction de ce que vous êtes après, C# a probablement une bibliothèque/fonction pour le spécifiques de commande que vous essayez d'exécuter, généralement une méthode plus solide ainsi, au lieu d'un mondial gestionnaire.Si le mondial "invoquer cette question" est ce que vous êtes après, alors que les autres réponses suggèrent, à l'aide de la
System.Diagnostics.Processus
classe est votre meilleur pari.OriginalL'auteur Nick Craver
Si vous voulez exécuter une ligne de commande (cmd.exe de commande, tels que "rep" ou "temps" ou "mkdir", de passer la commande comme argument pour cmd.exe avec le drapeau /C.
Par exemple,
ou
OriginalL'auteur Andreas Rejbrand