Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 8
Aller à la page: 1, 2, 3, 4, 5, 6, 7, 8  >
[Formation]Labougie
Auteur Message
Répondre en citant
Message [Formation]Labougie 
Bonjour,

Je vais créer 2 posts l'un à la suite de l'autre. Pour pouvoir mieux m'organiser.

1/ Les liens nécessaires



2/ Pas encore défini



Labougie



Dernière édition par labougie le Jeu 2 Juil 2009 - 21:47; édité 4 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Formation]Labougie 
Bonjour,

1/ Mon projet

Pas de but précis pour le moment, toutes les idées seront les bienvenues.

Eventuellement :


  • Lister les programmes au démarrage
  • Supprimer une quantité de fichier importante ( >= 50 )
  • A définir



Mon but et de connaitre le batch, puis après cet apprentissage faire une composition qui n'est pas définie. Donc, plus une connaissance générale de l'affaire. Mais je suis preneur de toutes idées.

labougie



Répondre en citant
Message [Formation]Labougie 
Bonjour,

Ici seront les questions puis les réponses apportées

Lecture pour le moment de la bible batch Wink


0/ Les trucs

SET>VARIABLE.TXT
NOTEPAD VARIABLE.TXT

Pas tout compris mais moyen d'afficher un résultat dans le notepad
=> une résultante dois se trouver dans c:\ windows \ sytem32 \
eh bien non, étrange Question Question Question

1/ La commande Goto


  • Soit: if %variable% lss 2 goto menu else GOTO exit

    tu peux aussi écrire

  • if %variable% lss 2 goto menu
    goto exit


2/ La commande Set


  • set /p nbr1=nombre n°1:
    Sert à entrée une donnée dans le batch via une variable

  • set /a somadd=%nbr1%+%nbr2%+%nrb3%
    Set à compiler plusieurs variables dans une seule


3/ Les Symboles opératoires de tests


  • NEQ - différent de
  • LSS - inférieur à
  • LEQ - inférieur ou égal à
  • GTR - supérieur à
  • GEQ - supérieur ou égal à


4/ La commande If


  • Dans la commande if il n'y a pas que if %variable%=="X"




Rien que pour le fun, ce smiley => Mort de Rire

labougie



Dernière édition par labougie le Lun 29 Juin 2009 - 16:10; édité 2 fois
Répondre en citant
Message [Formation]Labougie 
Bonsoir labougie !

Quand tu auras lu ta bible du batch ( Mr. Green ) tu nous diras:

    Se que tu métrise
    Se que tu n'as pas compris


Ensuite tu nous feras un script que tu veux ( même basique ) pour nous montrer se que tu sais faire.

En fonction de ceci, nous déterminerons la suite de ta formation.

Bonne soirée et bonne lecture Wink




______________________________________________________
La sécurité informatique et vous ! = http://batchdhelus.open-web.fr
Répondre en citant
Message [Formation]Labougie 
Bonjour Batch_Man,

Je viens de parcourir les 20 premières pages et j'aurais besoin d'une information complémentaire.

Quand je faisais de la programmation sur ma vieille calculette, je pouvais introduire des données dans une mémoire ( A par exemple), ce que l'on nomme en batch une vairable.

Je m'explique autrement.

Lors d'un batch,
puis je posé une question, stocker l'information dans un tiroir,
puis je posé une autre question, stocker l'information dans un autre tiroir,
puis je posé une autre question, stocker l'information dans un autre tiroir,

et ainsi de suite...

Ce qui donne n informations dans n tiroirs.

Ensuite mes tiroirs remplis, puis-je prendre le T1 puis par exemple le multiplier avec le T3 et faire un quotient du tout par T2.
Là cela ressemble un exercice de math, mais cela est il réalisable en batch ?

ne pas me donner la solution, simplement m'indiquer si ce principe fonctionne, et si il est assimilable à un batch quelconque sachant qu'en informatique, l'on peut croiser des données.


labougie



Répondre en citant
Message [Formation]Labougie 
Bonsoir,

Ci-dessous mon premier code, je me suis basé sur les tutos suivants, addition et Random.
Voici les problèmes rencontrés.
[list=]
[*] Imposible de sommé et surtout de l'affiché
[*] Idem pour le produit
[*] le retour depuis exit vers menu ne fonctionne pas toujours
car si l'on rejoue, l'on n'accède pas au menu
[/list]

merci de m'aiguiller

Code:

@echo off
echo .
echo .
echo Voici mon Premier Batch
Set date=date
echo %date%
echo .
echo Ce batch sert a compter, donc des variables vont etre crees
echo .
echo .

:menu
set name=name
echo Pour faire une addition choix 1
echo Pour faire une multiplication 2
pause
set /p reponse=reponse
rem si toutes les reponses sont inf strict a 2 goto addition
if %reponse% lss "1" goto addition else multiplication

:addition
cls
Echo Donnes seulement des nombres entiers
Rem création des variables
set /p nbr1=nombre n°1
set /p nbr2=nombre n°2
set /p nbr3=nombre n°3
REM calcul de l addition
set /a somadd=%nbr1%+%nbr2%+%nrb3%
REM afficher le resultat
echo La somme des 3 nombres %nbr1%+%nbr2%+%nbr3% est %somadd%
echo Presses une touche
pause>nul
cls
echo Merci d'avoir jouer avec moi %name%
Echo Souhaites tu rejouer ?
echo 1=oui 2=non
pause>nul
rem création de la variable choix
set /p choix=choix
if %choix% lss "2" goto menu else exit

:multiplication
cls
Echo Donnes seulement des nombres entiers
Rem création des variables
set /p nbr1=nombre n°1
set /p nbr2=nombre n°2
set /p nbr3=nombre n°3
REM calcul du produit
set /a somprod=%nbr1%*%nbr2%*%nrb3%
echo Le produit des 3 nombres %nbr1%*%nbr2%*%nbr3% est %somprod%
echo Presses une touche
pause>nul
cls
echo Merci d'avoir jouer avec moi %name%
Echo Souhaites tu rejouer ?
echo 1=oui 2=non
pause>nul
rem création de la variable choix
set /p choix=choix
if %choix% lss "2" goto menu else exit
pause>nul

:exit
cls
echo Merci d'avoir jouer avec moi %name%
Echo Souhaites tu rejouer ?
echo 1=oui 2=non
rem création de la variable choix
set /p choix=choix
if %choix% lss "2" goto menu
Echo Presses sur une touche pour quitter
pause>nul


labougie



Répondre en citant
Message [Formation]Labougie 
Bonjour Labougie,

Comme tu as pu le remarqué il est possible d'additionner / soustraire / multiplier des nombres mais cela donne toujours un nombre entier.
Le batch ne gère pas les virgules.

La commande SET sans paramètre permet de définir une variable.

Exemple:

Citation:
@ECHO OFF

SET mon_prenom=Thomas
ECHO Salut je m'appelle %mon_prenom%

PAUSE


Explications:

Je donne à la variable mon_prenom la valeur Thomas puis j'écris la valeur de la variable mon_prenom.
Pour cela je dois écrire la variable mon_prenom entourée de %

Souvent ces variables servent à écrire plusieurs fois la même chose de long, en évitant de tout ré-écrire.
Plusieurs avantages:

Code moins lourd, pas de possibilité d'erreur...

-------------------------------------------------------------------------

Pour demander d'entrer qq chose à l'utilisateur il faut utiliser SET /P variable=Votre choix:

Exemple:

Code:
@ECHO OFF
ECHO.
ECHO 1. Dire Bonjour
ECHO 2. Dire Au revoir
ECHO 3. Quitter
ECHO.
SET /P Politesse=Rentrez votre choix:
IF %Politesse% EQU 1 GOTO bjr
IF %Politesse% EQU 2 GOTO au_revoir
IF %Politesse% EQU 3 GOTO :EOF

:bjr

ECHO Bonjour !
GOTO FIN

:au_revoir

ECHO Au revoir !

:FIN
PAUSE


Explications:

"ECHO." Permet de sauter une ligne dans la fenêtre

Citation:
ECHO 1. Dire Bonjour
ECHO 2. Dire Au revoir
ECHO 3. Quitter


Permet d'établir le menu et SET /P Politesse=Rentrez votre choix:

De demander de rentrer une valeur.
Cette valeur est alors stockée dans la variable Politesse

Citation:
IF %Politesse% EQU 1 GOTO bjr
IF %Politesse% EQU 2 GOTO au_revoir
IF %Politesse% EQU 3 GOTO :EOF


Vérifie la valeur de Politesse pour l'envoyer au bon endroit.
Soit le "LABEL" bjr, soit le label au_revoir, ou soit le label ":EOF" ( Qui veut dire quitter un programme )

Citation:
:bjr

ECHO Bonjour !
GOTO FIN

:au_revoir


Permet d'afficher Bonjour puis de partir au label FIN

Citation:
:au_revoir

ECHO Au revoir !

:FIN
PAUSE


Tu l'auras compris, affiche Au revoir puis marque une pause.

Le nom d'un label ne doit JAMAIS contenir d'espace, exemple:

nombre_de_vie
nombre de vie

Tes labels doivent être clairs pour pouvoir te repérer quand tu feras de grands programmes.

-------------------------------------------------------------------------

Pour faire des calculs il faut utiliser SET /A

Exemple

@ECHO OFF

SET nombre1=4
SET nombre2=6
SET /A resultat=%nombre1%*%nombre2%

ECHO %resultat%

PAUSE

Explication

Je définie mes variables avec:

Citation:
SET nombre1=4
SET nombre2=6


Ensuite je les multiplie entre elles avec SET /A resultat=%nombre1%*%nombre2%.
Le résultat est stocké dans la variable %resultat%

Et j'affiche ma variable resultat avec ECHO %resultat%

-------------------------------------------------------------------------

Ton code est bien commenté, c'est une bonne chose !
Mais fais attention à se que tu tapes:

set /a somprod=%nbr1%*%nbr2%*%nrb3%
set /a somadd=%nbr1%+%nbr2%+%nrb3%

Alors que les variables sont

%nbr1%
%nbr2%
%nbr3%

Donc ça ne fonctionne pas Wink

Ensuite:

Citation:
Set date=date
echo %date%


Inutile, la variable %date% est une variable d'environnement, donc le système la connait déjà:

ECHO %DATE%

Il est aussi important de bien présenter son batch, pour que l'utilisateur comprenne se qu'il fait Wink

Dans ton code une variable "%name%" venue de nulle part apparait Mr. Green .
Pour afficher le nom de la session en cours il existe aussi aussi une variable d'environnement:

%USERNAME%

Dans ton code, quand tu mets if %variable% lss 2 goto menu else exit par exemple, ce n'est pas juste.

Il faut remettre GOTO, soit: if %variable% lss 2 goto menu else GOTO exit

tu peux aussi écrire

if %variable% lss 2 goto menu
GOTO EXIT

Correction de ton code:

Citation:
@echo off
echo .
echo .
echo Voici mon Premier Batch
echo %date%
echo .
echo Ce batch sert a compter, donc des variables vont etre crees
echo .
echo .

:menu
CLS
echo 1) Faire une addition
echo 2) Faire une multiplication
echo.
set /p reponse=Votre choix:
rem si toutes les reponses sont inf strict a 2 goto addition
if %reponse% EQU 1 goto addition
GOTO multiplication

:addition
cls
Echo Donnes seulement des nombres entiers
Rem création des variables
set /p nbr1=Nombre 1:
set /p nbr2=Nombre 2:
set /p nbr3=Nombre 3:
REM calcul de l addition
set /a somadd=%nbr1%+%nbr2%+%nbr3%
REM afficher le resultat
echo La somme des 3 nombres %nbr1%+%nbr2%+%nbr3% est %somadd%
echo Presses une touche
pause>nul
cls
echo Merci d'avoir jouer avec moi %USERNAME%
Echo Souhaites tu rejouer ?
echo 1=oui 2=non
rem création de la variable choix
set /p choix=Choix:
if %choix% EQU 1 goto menu
@exit

:multiplication
cls
Echo Donnes seulement des nombres entiers
Rem création des variables
set /p nbr1=Nombre 1:
set /p nbr2=Nombre 2:
set /p nbr3=Nombre 3:
REM calcul du produit
set /a somprod=%nbr1%*%nbr2%*%nbr3%
echo Le produit des 3 nombres %nbr1%*%nbr2%*%nbr3% est %somprod%
echo Presses une touche
pause>nul
cls
echo Merci d'avoir jouer avec moi %USERNAME%
Echo Souhaites tu rejouer ?
echo 1=oui 2=non
pause>nul
rem création de la variable choix
set /p choix=Choix:
if %choix% EQU 1 goto menu
@EXIT


-------------------------------------------------------------------------

Cherche sur internet la définition de variable d'environnement, puis écrit ceci dans un batch:

SET>VARIABLE.TXT
NOTEPAD VARIABLE.TXT

Puis colle le contenu ici.

Ensuite tu m'écriras la variable d'environnement du dossier de WINDOWS

Si tu as des questions n'hésite surtout pas

Batch_Man




______________________________________________________
La sécurité informatique et vous ! = http://batchdhelus.open-web.fr
Répondre en citant
Message [Formation]Labougie 
Salut Batch_Man,

Merci de m'avoir corrigé.
Pour ce 1er batch j'ai passé 1 h30, je n'ai lu que les 20 premières pages pour le moment. Le principe me rappel ce que je faisais avec ma casio à l'époque.

Pour %nbr% oui j'avais vu la faute mais étrange qu'elle apparaisse ici car je l'avais modifié.

La commande Else n'existe donc pas en batch, il faut alors la remplacer par un nouveau goto => ok pour cela.

Par contre pourquoi => @exit pourquoi @

Comment utiliser le Spoiler, merci à toi.

Je regarderais tes questions demain, là => dodo

labougie



Répondre en citant
Message [Formation]Labougie 
Bonjour Labougie
et bien tu étudies à fond, ça fait plaisir.
Je vais juste répondre à tes quelques interrogations et te laisser repondre aux questions de Batch_Man.

Citation:
a commande Else n'existe donc pas en batch, il faut alors la remplacer par un nouveau goto => ok pour cela.

Si la commande Else existe..

Code:
@echo off
IF toto EQU tata (echo la tete a toto) else ( echo toto différent de tata)
IF toto EQU toto (echo la tete a toto) else ( echo toto différent de tata)


Citation:


Comment utiliser le Spoiler, merci à toi.

tu utilises la bbcode [ spoiler ] [ / spoiler] ou [ Hide ] [ /Hide]

Citation:

Par contre pourquoi => @exit pourquoi @


Le tutoriel te répondra mieux que moi, Page 11-12 commande echo..

Citation:
Dans votre Batch, l’écho est désactivé lorsque COMMAND.COM rencontre echo
off. Ce dernier n’est pas réactivé tant que la commande inverse : echo on, n’est
pas rencontrée.
Pourquoi, puisque l’écho est désactivé via la commande « echo off », cette
dernière est-elle justement affichée en haut de l’écran ? Et bien tout simplement car
MS-DOS affiche d’abord, et exécute ensuite. Rencontrant « echo off », il l’affiche,
puis désactive après l’écho. Nous verrons ultérieurement comment contourner cette
fonction.
Un autre moyen pour désactiver l’écho est de faire précéder la ligne dont seul le
résultat doit être affiché du signe « @ » .
Ainsi, vous pourriez transformer le batch
Echo off
Dir c:\*.BAT
…en …
@dir *.BAT

Bien sûr, si notre batch comportait plusieurs lignes, il faudrait rajouter autant de
« @ » devant chaque ligne qu’il aurait de lignes ou l’on veut désactiver l’écho.
Autant, dans ce cas-là, utiliser une seule fois en début de Batch la commande
« echo off ».

Cette notion d’écho local doit être saisie, car la majorité des programmeurs
Batchs préfèrent le désactiver par économie de place et souci de
compréhension (cela évite que beaucoup trop de lignes incompréhensibles
pour le néophyte soient affichées à l’écran) : vous rencontrerez donc souvent
les commandes précédemment citées.
Un dernier point sur l’écho : la commande « @echo off ». Il s’agit d ‘une
combinaison du signe « @ » et de « echo off ». Quel est son intérêt ? Et bien cela
évite d’afficher « echo off » en début de batch comme il apparaît dans la dernière
capture d’écran. La désactivation de l’écho est elle même masquée via « @ ». Vous
rencontrerez donc très souvent cette combinaison.
Vous pouvez réactiver l’écho à tout moment dans le Batch en insérant la commande
inverse « echo on ».





______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Formation]Labougie 
Bonjour Laddy,

Citation:

Bonjour Labougie
et bien tu étudies à fond, ça fait plaisir.


Merci laddy pour le compliment Okay

1/
Dans le cas de la commande Else, faut il mettre () dans la 2 eme condition: exemple

If %bidule% = "1" goto menu else ( exit )

De plus les "" sont ils obligatoire pour la première condition

2/
y a t'il une différence entre :

ceci => set /p choix=Choix:
et ceci => set /p choix=Choix : ici les : sont décalés, cela gêne dans le code batch si oui que cela engendre t'il ?

3/

Dans l'exemple de mon batch, si je comprends bien, il n'y avait pas besoin de créer une rubrique Exit, car la commande @exit à jouer le rôle de fermeture, n'est-ce pas.

4/
J'ai édité cette partie du post n°3

Citation:

Ici seront les questions puis les réponses apportées


labougie



Répondre en citant
Message [Formation]Labougie 
Bonjour Batch_Man,

Résultat du batch demandé :


ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Labougie\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=PC-DE-LABOUGIE
ComSpec=C:\Windows\system32\cmd.exe
DFSTRACINGON=FALSE
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Labougie
LOCALAPPDATA=C:\Users\Labougie\AppData\Local
LOGONSERVER=\\PC-DE-LABOUGIE
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Ahead\Lib\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 107 Stepping 1, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=6b01
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\Labougie\AppData\Local\Temp
TMP=C:\Users\Labougie\AppData\Local\Temp
TRACE_FORMAT_SEARCH_PATH=\\NTREL202.ntdev.corp.microsoft.com\4F18C3A5-CA09-4DBD-B6FC-219FDD4C6BE0\TraceFormat
USERDOMAIN=PC-de-Labougie
USERNAME=Labougie
USERPROFILE=C:\Users\Labougie
windir=C:\Windows


Citation:

Ensuite tu m'écriras la variable d'environnement du dossier de WINDOWS


La variable d'environement de windows est %systemroot% ou %SystemRoot%
La variable d'environement de windows est %windir%
Il me semble qu'en batch pour les Maj et les minuscules peut importe.

Quelles différences entre %windir% et %systemroot% ?

labougie



Répondre en citant
Message [Formation]Labougie 
labougie a écrit:

1/
Dans le cas de la commande Else, faut il mettre () dans la 2 eme condition: exemple

If %bidule% = "1" goto menu else ( exit )

oui il faut des parenthèses.

Citation:
De plus les "" sont ils obligatoire pour la première condition

ça dépend si c'est une commande en général il faut une simple ' ' et pour les variables il faut des doubles "%variable%"




Citation:

2/
y a t'il une différence entre :
ceci => set /p choix=Choix:
et ceci => set /p choix=Choix : ici les : sont décalés, cela gêne dans le code batch si oui que cela engendre t'il ?

3/

A toi de me le dire ? as tu testé la différence dans un bat ?
Que vois tu ?


Citation:
Dans l'exemple de mon batch, si je comprends bien, il n'y avait pas besoin de créer une rubrique Exit, car la commande @exit à jouer le rôle de fermeture, n'est-ce pas.

elle n'est pas obligatoire effectivement mais un rubrique permet de faire appel à @exit n'importe où dans ton code
ce n'est pas le cas si tu le places en fin de batch, ton code sera parcourus jusqu'à la fin.



Bonne soirée
Laddy




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Formation]Labougie 
Bonsoir Laddy,

Citation:

2/
y a t'il une différence entre :
ceci => set /p choix=Choix:
et ceci => set /p choix=Choix : ici les : sont décalés, cela gêne dans le code batch si oui que cela engendre t'il ?


A toi de me le dire ? as tu testé la différence dans un bat ?
Que vois tu ?


J'ai laissé le premier choix : et le second choix: => à première vue pas de différence.

Comment puis je faire ? pour que lors de la question suivante
Nombre n°1 : la réponse de l'utilisateur soit sur la ligne en dessous ( en fait mettre le curseur en début de ligne ).

labougie



Répondre en citant
Message [Formation]Labougie 
Bonsoir,

Voici une composition sur comment calculer ses remboursements d'emprunts Mr. Green .


Code:

@echo off
Rem Explication de ce que fais le batch
echo .
echo .
echo      Voici un programme pour calculer vos remboursements d'emprunts
echo .
echo .
echo      ----- Made by labougie -----
echo .
echo Presse une touche Stp %username%
Pause>nul
cls
rem saisie des donnees necessaire pour l'execution du batch
echo Tout d'abord il faut me fournir les donnees suivantes :
echo .
echo .

:entree
set /p mtt=Montant Total de l'emprunt :
set /p TX=taux de l'emprunt ( pour 4.5  ) taper 4.5 :
set /p d=duree en mois ( une annee = 12 mois ):
echo .
echo .
rem choix du type de remboursement
echo Pour une annuite constante choisir  1
echo Pour un amortissement constant choisir  2
echo Les annuites constantes sont pour les particuliers
echo Les amortissements constants sont pour les entreprises
echo.
echo.
set /a anncons=Annuite constante
set /a amortcons=amortissement constant
if %anncons% equ 1 goto annuite else goto amortissement
echo .
echo .
echo Presse une touche %username%
Pause>nul
rem calcul du mode pour annuite constante

:annuite
cls
echo Voici le calcul de remboursement de ton emprunt %username% le %date%
echo Le montant de l'emprunt est de %mtt% Euros
echo Le taux est %tx%
echo La duree est de %d% mois
echo Presse une touche %username%
Pause>nul
rem formule mathematique annuite constante

:annuiteconstante
set /a Calannuite=((%mtt%*(%tx%/100)))/(1-(1+%tx%)exp-%d%)
echo le montant de l'annuite est de %calannuite%

set /a interet=%mtt%*(%tx%/100)
echo le montant des interets est de : %interet%

set / a amortann=%calannuite%-%interet%
echo Le mantant des amortissements : %amortann%

set / a valfin=%mtt%-%amortann%
echo La valeur de fin est de : %valfin%
echo Presse une touche %username%
Pause>nul

:routine
rem la routine permet de faire le calcul sur la duree total de l'emprunt
rem calcul de la periodicite
set /a tpsrestant=%d%-1
set /a interet=%mtt%*(%tx%/100)
echo Le montant des interets est de : %interet%
set /a amortann=%calannuite%-%interet%
echo Le montant des interets est de : %amortann%
echo Le montant de l'annuite constante est de : %calannuite%
set /a valfin2=%valfin%-(%calannuite%-%interet%)
echo La valeur de fin est de : %valfin2%
if %tpsrestant% <= 1 goto fin else goto routine
echo Presse une touche %username%
Pause>nul

:amortissementconstant
rem formule mathematique amortissement constant
set :a interet=%mtt%*(%tx%/100)
echo Le montant des interets est de : %interet%
set /a amortconst=%mtt%/%d%
Echo L'amortissement constant est de : %amortconst%
Set /a annuite=%amortconst%+%interet%
echo Le montant de l'annuite est de : %annuite%
set / a Valfin=%mtt%-%amortconst%
echo Le montant de la valeur de fin est de : %valfin%
echo Presse une touche %username%
Pause>nul

:routine2
rem la routine permet de faire le calcul sur la duree total de l'emprunt
rem calcul de la periodicite
set /a tpsrestant=%d%-1
set /a amortann=%calannuite%-%interet%
echo Le montant des interets est de : %amortann%
echo Le montant de l'annuite constante est de : %calannuite%
set /a valfin2=%valfin%-(%calannuite%-%interet%)
echo La valeur de fin est de : %valfin2%
if %tpsrestant% <= 1 goto fin else goto routine2
echo Presse une touche %username%
Pause>nul

:fin
echo Le Calcul est termine %username%




Il n'est pas parfait car je n'obtiens pas ce que je recherche, à savoir :

Afficher le résultat dans un notepad, mais avec le détail mensuel. => je n'ai pas mis le notepad pour l'instant car je n'obtiens pas de résultat concluant avec les routines. Celles-ci doivent fonctionner mais l'affichage me laisse perplexe.
Je sais que le batch ne gère pas la virgule.
Une erreur m'indique qu'il me manque une parenthèse.
J'ai supposé cette fonction mathématique => exp pour exposant.
J'ai fais un simili de présentation, façon labougie.
J'ai inclus la date, le nom à plusieurs reprise.

Merci pour vos conseils, et je suis preneur d'exercices bien que cette bible ne soit toujours pas finie Rolling Eyes .
Le boulot plus les ados à gérer, ce n'est pas toujours simple. Rolling Eyes

Labougie



Répondre en citant
Message [Formation]Labougie 
Bonjour
tu ne commences pas vraiement par la facilité Laughing pour un premier code, bravo.

labougie a écrit:


Afficher le résultat dans un notepad, mais avec le détail mensuel. => je n'ai pas mis le notepad pour l'instant car je n'obtiens pas de résultat concluant avec les routines. Celles-ci doivent fonctionner mais l'affichage me laisse perplexe.

Obtiens tu ? faire une capture d'ecran si possible

Citation:

Je sais que le batch ne gère pas la virgule.

Une erreur m'indique qu'il me manque une parenthèse.
J'ai supposé cette fonction mathématique => exp pour exposant.

J en'ai jamais fait de calcul avec set /A compliqué mais il me semble que exp (exposant) n'existe pas en batch.... elle existe en C.
Batch_Man confirmera.


Pour les calculs, le batch ne gère pas les nombres à virgules que les nombres entiers
ainsi :
Code:
@echo off
set /a resultat=9/2
::ne donnerai jamais 4,5 mais 4.
echo %resultat%
pause



Citation:
J'ai fais un simili de présentation, façon labougie.
J'ai inclus la date, le nom à plusieurs reprise.

Ce sont des variables d'environnements donc normal que tu les répètes souvant par si c'est toujours la même phrase tu peux créer sa propre variable.

Citation:

Merci pour vos conseils, et je suis preneur d'exercices bien que cette bible ne soit toujours pas finie Rolling Eyes .
Le boulot plus les ados à gérer, ce n'est pas toujours simple. Rolling Eyes

Labougie


Il y a une erreur ou des erreurs dans ton label entree, en effet tu demandes de faire un choix à l'utilisateur et tu utilises set /a qui est pour réaliser des calculs.
Il ne faut pas utiliser set /a
Quel est le set /commutateur que tu dois utiliser pour faire la saisie de l'utilisateur ?

Exercice :

Corriger ton label entrer.. Sad apprentissage sur la création d'un menu)



Je ne sais pas si ton projet est réalisable dans ce cas...



Dernière édition par Laddy le Jeu 2 Juil 2009 - 08:23; édité 1 fois

______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message [Formation]Labougie 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 8
Aller à la page: 1, 2, 3, 4, 5, 6, 7, 8  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch