| 
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile  |  
  |    |    |   |   |   | 
| Envoie d'une commande au DOS (CMD) |  
 | Débuté par Chronocoll_Bernard, 28 oct. 2025 11:39 - 3 réponses |  
  |   |  
  |    |    |   |  
  |   
 |   | 
Membre enregistré 7 messages |  
  |   
| Posté le 28 octobre 2025 - 11:39 |  
 Bonjour les copains, Je veux compter le nombre de lignes d'un très volumineux fichier (>> 4 MM lignes, au moins). Je veux utiliser pour cela une instruction dos très simple et très rapide : C:\Windows\System32\cmd.exe /u /c find /c /v  "" + le chemin du fichier à analyser
  Dans mon cas : Str_LigneCommande = "C:\Windows\System32\cmd.exe /u /c find /c /v " + caract(34) + caract(34) + " " + Str_NomFichier
  C'est l'instruction de lecture qui se passe mal, elle me donne une chaine de retour vide.
  Str_Sortie	est une chaîne = MaCommandeAExécuter.LitSortieStandard(Vrai)
  Quelqu'un d'entre vous a t il déjà fait marcher un truc pareil ?
  Je vous donne comme info sup que la ligne de commande qui est enregistrée dans la variable Str_LigneCommande, lorsque j'ouvre la console et que je l'exécute, elle me donne le bon résultat !
  Microsoft Windows [version 10.0.26200.6901] (c) Microsoft Corporation. Tous droits réservés. C:\Users\Admin>C:\Windows\System32\cmd.exe /u /c find /c /v "" "R:\@prenoms-2023-dpt.csv" ---------- R:\@PRENOMS-2023-DPT.CSV: 3884324 C:\Users\Admin>
 
 Str_Commande est une chaîne = "/u /c find /c /v " + Caract(34) + Caract(34) +" " + Caract(34) + Str_CheminFichier + Caract(34) MaCommandeAExécuter est une Commande
  MaCommandeAExécuter.Exécutable = "C:\Windows\System32\cmd.exe" MaCommandeAExécuter.Arguments = Str_Commande
  MaCommandeAExécuter.Flux = cmdSortieStandard
  Bool_Resultat = CmdExécute(MaCommandeAExécuter, Vrai) SI Bool_Resultat ALORS   Str_Sortie est une chaîne = MaCommandeAExécuter.LitSortieStandard(Vrai)   SI (Str_Sortie<> "") ALORS     I_NbreLigne  = Val(SansEspace(ExtraitChaîne(Str_Sortie, -1, ":")))   SINON     Info("Pas de ligne détectée par la fonction cmd")   FIN SINON   Info("Erreur lors de l'exécution de la commande","cmd " + Str_Commande) FIN RENVOYER I_NbreLigne 
  Ici, Str_Sortie est toujours vide......  
  Un grand merci à vous d'avoir lu jusqu'ici ! Bernard |  
  |   |  
  |   |  
  |    |    |  |  
  |  
  |    |    |  
 |   | 
Membre enregistré 283 messages |  
  |   
| Posté le 28 octobre 2025 - 14:08 |  
 Bonjour Bernard,
  Essayes ceci... ça devrait fonctionner :
 MaCommandeAExécuter est une Commande   I_NbreLigne est un entier      MaCommandeAExécuter.Exécutable = "C:\Windows\System32\find.exe"   MaCommandeAExécuter.Arguments = "/c /v " + Caract(34) + Caract(34) +" " + Caract(34) + Str_CheminFichier + Caract(34)      MaCommandeAExécuter.Flux = cmdSortieStandard      Bool_Resultat est un booléen = cmdExecute(MaCommandeAExécuter, Vrai)   SI Bool_Resultat ALORS     Str_Sortie est une chaîne = MaCommandeAExécuter.LitSortieStandard(Vrai)     SI (Str_Sortie<> "") ALORS       I_NbreLigne = Val(SansEspace(ExtraitChaîne(Str_Sortie, rangDernier, ":")))     SINON       Info("Pas de ligne détectée par la fonction cmd")     FIN   SINON     Info("Erreur lors de l'exécution de la commande")   FIN   RENVOYER I_NbreLigne 
  Cdlt Fabrice |  
  |   |  
  |   |  
  |    |    |  |  
  |  
  |    |    |  
 |   | 
Membre enregistré 7 messages |  
  |   
| Posté le 28 octobre 2025 - 14:49 |  
 Fabrice N a écrit : 
 Bonjour Bernard,
  ................................ Cdlt Fabrice 
  Merci beaucoup, Fabrice, ca fonctionne effectivement parfaitement, j'ai le bon nombre de lignes qui remonte. C'est mon instruction  	MaCommandeAExécuter.LitSortieStandard(Vrai)
  Qui était mal écrite.... Au plaisir ! |  
  |   |  
  |   |  
  |    |    |  |  
  |  
  |    |    |  
 |   | 
Membre enregistré 131 messages |  
  |   
| Posté le 29 octobre 2025 - 09:58 |  
 Chronocoll_Bernard a écrit : 
 C'est mon instruction MaCommandeAExécuter.LitSortieStandard(Vrai) Qui était mal écrite.... 
  heu non, c'est ton exécutable qui n'était pas le bon. Tu avais mis cmd.exe au lieu de find.exe |  
  |   |  
  |   |  
  |    |    |  |  
  |  
  |    |    |    |   |  
  |    |  |  
  |   |   |  
  |  |  
  |  
  |  
  |