IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Exécuter succession de commande (sous cmd).


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut Exécuter succession de commande (sous cmd).
    Je rencontre un petit soucis avec l'éxécution de commande dos via C#.
    Je voudrais exécuter ces deux commandes. Qaund je passe par Windows, cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET PGPASSWORD=123456789
    "C:\Program Files\PostgreSQL\9.0\bin\pg_dump" -i -h 1127.0.0.1 -p 5432 -U postgres -F c -b -v -f C:\backup.backup nameDatabase
    Par contre quand je le fait côté C#, il me demande le mot de passe. Comme s'il ne tenait pas compte de la ligne
    SET PGPASSWORD=123456789

    Voici la fonction que j'utilise
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public void ExecuteCommandSync(string command)
    {
    	try
    	{
     
    		var processStartInfo = new ProcessStartInfo("cmd","/c "+command){
    															      RedirectStandardInput  = true,
    		      RedirectStandardOutput = true,
    		      RedirectStandardError = true,
    		      UseShellExecute = false,
    		      CreateNoWindow = false,
    		      WindowStyle = ProcessWindowStyle.Hidden
    																};
    		var process = new Process { StartInfo = processStartInfo };
    		process.Start();
    		var result = process.StandardOutput.ReadToEnd();
    		Console.WriteLine(result);
    	}
    	catch (Exception objException)
    	{
    	}
    }

    Je pense qu'entre les 2 commandes, il doit falloir utiliser la même "session", mais je n'arrive pas à le faire fonctionner.
    Qualqu'un peut il me donner un coup de main svp?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Par défaut
    Peut-être en redirigeant l'input standard ?

    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx


    Sinon, pourquoi ne pas passer par un fichier .bat que tu executes ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut
    Soit c'est moi qui ne suis pas bon, soit je ne fais pas comme il faut, mais je n'y arrive pas!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut
    En fait il fallait utiliser
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.SetEnvironmentVariable("PGPASSWORD","blalalbalb");

  5. #5
    Membre confirmé Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Par curiosité, cela fonctionne ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET PGPASSWORD=123456789 && "C:\Program Files\PostgreSQL\9.0\bin\pg_dump" -i -h 1127.0.0.1 -p 5432 -U postgres -F c -b -v -f C:\backup.backup nameDatabase

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Forcer l'exécution d'une commande sous DOS
    Par CervaZ dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 02/05/2013, 23h47
  2. l'équivalons de la commande de « cmd » Win sous Linux
    Par bilred dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 25/05/2009, 00h18
  3. Exécution de commandes sous Linux
    Par Mr-Mobou dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/03/2008, 18h46
  4. commande mysql sous cmd.exe
    Par killysui dans le forum Windows
    Réponses: 3
    Dernier message: 19/03/2008, 21h12
  5. exécuter commandes sous cmd ?
    Par kimz dans le forum Windows XP
    Réponses: 9
    Dernier message: 01/03/2007, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo