Page 1 sur 1

[R] écrire dans un cmd

Posté : lun. 07 févr. 2022 14:54
par pumilio
Bonjour à tous,

Je cherche à créer un script qui fonctionne en ligne de commande.
J'aimerais obtenir le même fonctionnement que les applications standards qui s'exécutent en ligne de commande.
Notamment lorsqu'on utilise l'aide avec la balise /?

Dans mon cas cela fonctionne sauf que lorsque je demande l'aide via /? l'invite de commande affiche en premier un "C:\>" que je ne souhaite pas afficher.

Voici le code très simplifié qui montre le fonctionnement du script :

Code : Tout sélectionner

#include <WinAPI.au3>

If $CmdLine[0] > 0 Then
	If $CmdLine[1] = "/save" Then
		Run("C:\MonProgram.exe")
	ElseIf $CmdLine[1] = "/?" Then
		_WinAPI_AttachConsole()
		$hConsole = _WinAPI_GetStdHandle(1)
		_WinAPI_WriteConsole($hConsole, "Ligne d'aide 1")
		 Send("{ENTER}")
	EndIf
EndIf
Sauriez-vous s'il est possible d'obtenir un affichage sans cette balise de départ "C:\>" lorsque je souhaite afficher l'aide avec "/?"

Merci pour votre aide,

Re: [..] écrire dans un cmd  

Posté : lun. 07 févr. 2022 19:21
par TommyDDR
Je n'ai jamais utilisé WinAPI pour écrire dans la console, mais vous pouvez faire ça :
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <WinAPI.au3>

If $CmdLine[0] > 0 Then
   If $CmdLine[1] = "/save" Then
      Run("C:\MonProgram.exe")
   ElseIf $CmdLine[1] = "/?" Then
      ConsoleWrite("Ligne d'aide 1" & @CRLF)
   EndIf
EndIf
#AutoIt3Wrapper_Change2CUI=y est très important.

Il faudra ensuite "compiler avec option"

Re: [..] écrire dans un cmd

Posté : mar. 08 févr. 2022 09:52
par pumilio
Effectivement votre méthode est plus adaptée et correspond exactement à mes attentes.

Merci beaucoup pour votre aide.