Bonjour,

Le code suivant fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
      aStringList := TStringList.Create;
      aProcess := TProcess.Create(nil);
      aProcess.CommandLine := 'ls' ;
      aProcess.Options := aProcess.Options + [poUsePipes] - [poWaitOnExit];
      aProcess.Execute;
      aStringList.LoadFromStream(aProcess.Output);
      aProcess.Free;
      aStringList.SaveToFile('output.txt');
      aStringList.Free;
Mon fichier output.text contient alors 17 lignes.

Si je remplace aProcess.CommandLine := 'ls' ; par aProcess.CommandLine := 'ls | head -5';, le fichier output.txt est vide or en console, la commande avec head -5 me retourne bien 5 lignes.

Il s'agit très vraisemblablement d'un problème d'espaces et du | qui doivent être encadrés de simples ou doubles quotes à bon escient. Mais quelle est le bonne combinaison ?

Merci. Cordialement. Gilles