Script de commandes sous Windows

Résolu/Fermé
Bouuuhx Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 29 octobre 2013 - 29 oct. 2013 à 10:10
 Utilisateur anonyme - 30 oct. 2013 à 07:44
Bonjour,
Je débute en informatique, et je dois écrire une commande qui calcule la variable d'environnement MAXI et affiche le maximum d'une liste d'entiers passée en paramètres (sachant que le nombre de paramètres n'est pas défini).
J'ai tenté d'écrire le script mais quand je l'exécute sur l'invite de commande, il est précisé que la syntaxe est incorrecte. Alors si quelqu'un pourrait m'aider à comprendre pourquoi et à me corriger ce serait vraiment sympa.

Voici ce que j'ai écrit sous Notepad++ :

@echo off
if "%1"==" " goto Usage
if "%1"=="/?" goto Usage
set MAXI=0

:tantque
if "%1"==" " goto ftq
if /I %1% GTR %MAXI% set MAXI=%1
shift
goto tantque
:ftq
echo Le maximum est : %MAXI%
goto fin
:Usage
echo Usage : Maximum entiers exemple : Maximum 4 5 3
:fin



Merci d'avance à ceux ou celles qui prendront de leur temps pour me répondre
A voir également:

1 réponse

Utilisateur anonyme
29 oct. 2013 à 13:56
salut,

la première chose c'est que tu ne test que %1, soit le premier paramètre. Je ne sais pas comment voir dynamiquement les paramètres donc je pense que tu as à faire 3 tests.

soit :


@echo off
if "%1"==" " goto Usage
if "%1"=="/?" goto Usage
set MAXI=0

if "%1"==" " goto ftq
if /I %1 GTR %MAXI% set MAXI=%1
if /I %2 GTR %MAXI% set MAXI=%2
if /I %3 GTR %MAXI% set MAXI=%3

goto ftq
shift
:ftq
echo Le maximum est : %MAXI%
goto fin
:Usage
echo Usage : Maximum entiers exemple : Maximum 4 5 3
:fin

naga
0
Bouuuhx Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 29 octobre 2013
29 oct. 2013 à 15:58
Merci pour cette réponse, mais qu'est ce que tu entends par "voir dynamiquement les paramètres" ?
Le problème de ta solution c'est que je ne sais pas à l'avance combien de paramètres il sera mis, or si j'ai bien compris dans ce que tu as écrit il y a 3 paramètres qui seront testés
0
Utilisateur anonyme
29 oct. 2013 à 16:36
oui c'est bien ce que j'ai dis : voir dynamiquement les paramètres signifie que l'utilisateur peu rentrer n paramètres et faire le traitement en fonction de ca. Le truc c'est donc qu'en bat, je n'ai pas trouvé de méthodes qui le permettent (et dans ton code tu ne testais que le %1 ce qui engendre une boucle infinie)
0
Bouuuhx Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 29 octobre 2013
29 oct. 2013 à 17:05
Oui mais la commande shift permet de transformer le paramètre 2 en paramètre 1 ainsi je teste les paramètres jusqu'à ce qu'il y en ai un qui soit vide (if "%1"=="" goto ftq renvoie à la fin de l'itération).
Du coup j'ai réussi à me corriger mon script afin qu'il fonctionne avec le code suivant :


@echo off

if "%1"=="" (
echo Il n'y a aucun parametre !
goto Usage )
if "%1"=="/?" goto Usage


set MAXI=%1
:tantque
if "%1"=="" goto ftq
if /I %1 GTR %MAXI% ( set MAXI=%1 )
shift
goto tantque
:ftq

echo Le maximum est : %MAXI%
goto fin
:Usage
echo Usage : Maximum insererEntiers Exemple : Maximum 4 1 7 3
:fin


En tout cas merci d'avoir pris le temps de m'aider
0
Utilisateur anonyme
30 oct. 2013 à 07:44
ok je me demandais justement, je n'avais pas pensé qu'il s'agissait du curseur ^^
0