BATCH - Demande d'informations à propos de certaines command
Modérateur : WIN32-[GG]
BATCH - Demande d'informations à propos de certaines command
Bonjour à toutes et à tous, je suis face à un problème de "taille" (si on peut appeler ça comme ça ).
Cela fait 2 semaines que je créé des programmes BATCH sous Windows 7 en mode "Automate" (càd sans tuto ou de personnes de mon entourage pour m'aider).
Je cherche des commandes simples et efficaces pour réaliser les actions suivantes (ce n'est pourtant pas faute d'avoir chercher ) :
- Une commande qui retarderait une autre commande, c'est à dire un délai (j'ai essayé le "timeout /t nombre" mais sans succès).
- Une commande qui effectuerait les commandes suivantes sur la même ligne horizontale (j'ai essayé le "echo -n texte" mais sans résultat non plus ).
- Une commande qui changerait la couleur de certains mots (la commande color fait effet sur le programme entier).
- Une commande pour créer un bouton (interaction avec le cmd),c'est à dire, dans mon cas, un rectangle qui lorsque l'on clique dessus, lance un
fichier batch ?
╔══════════════════╗
║ I n t r o d u c t i o n - - - - -║ → start :J/BATCH/INTERDIT/INTRODUCTION/Introduction.bat
╚══════════════════╝
╔══════════════════╗
║ C a l c u l a t r i c e - - - - -║ → start :J/BATCH/INTERDIT/FINAL/Calculatrice/Calculatrice.bat
╚══════════════════╝
J'espère que vous pourrez m'aider à résoudre ces problèmes et vous remercie d'avance .
PS : Je n'ai que 15ans alors si c'est un truc stupide, vous énervez pas .
Cela fait 2 semaines que je créé des programmes BATCH sous Windows 7 en mode "Automate" (càd sans tuto ou de personnes de mon entourage pour m'aider).
Je cherche des commandes simples et efficaces pour réaliser les actions suivantes (ce n'est pourtant pas faute d'avoir chercher ) :
- Une commande qui retarderait une autre commande, c'est à dire un délai (j'ai essayé le "timeout /t nombre" mais sans succès).
- Une commande qui effectuerait les commandes suivantes sur la même ligne horizontale (j'ai essayé le "echo -n texte" mais sans résultat non plus ).
- Une commande qui changerait la couleur de certains mots (la commande color fait effet sur le programme entier).
- Une commande pour créer un bouton (interaction avec le cmd),c'est à dire, dans mon cas, un rectangle qui lorsque l'on clique dessus, lance un
fichier batch ?
╔══════════════════╗
║ I n t r o d u c t i o n - - - - -║ → start :J/BATCH/INTERDIT/INTRODUCTION/Introduction.bat
╚══════════════════╝
╔══════════════════╗
║ C a l c u l a t r i c e - - - - -║ → start :J/BATCH/INTERDIT/FINAL/Calculatrice/Calculatrice.bat
╚══════════════════╝
J'espère que vous pourrez m'aider à résoudre ces problèmes et vous remercie d'avance .
PS : Je n'ai que 15ans alors si c'est un truc stupide, vous énervez pas .
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: BATCH - Demande d'informations à propos de certaines command
Bonsoir,
Concernant tes deux derniers souhaits, c'est-à-dire changer les couleurs localement et cliquer sur un rectangle, tu peux utiliser Batbox :
http://dos9.org/doc/en/html/batbox.html
http://batch.xoo.it/t2911-TUTO-INFOS-For-Batbox-exe.htm
A part ça je ne comprend pas pourquoi la commande timeout ne fonctionne pas pour toi.
Concernant l'exécution des commandes sur la même ligne, tu peux certainement y arriver en rusant un peu, mais si tu veux de l'aide il faut nous donner plus de détails.
Concernant tes deux derniers souhaits, c'est-à-dire changer les couleurs localement et cliquer sur un rectangle, tu peux utiliser Batbox :
http://dos9.org/doc/en/html/batbox.html
http://batch.xoo.it/t2911-TUTO-INFOS-For-Batbox-exe.htm
A part ça je ne comprend pas pourquoi la commande timeout ne fonctionne pas pour toi.
Concernant l'exécution des commandes sur la même ligne, tu peux certainement y arriver en rusant un peu, mais si tu veux de l'aide il faut nous donner plus de détails.
Re: BATCH - Demande d'informations à propos de certaines command
Encore toi Barnabé Merci beaucoup pour ta réponse mais le site qui explique le batbox est entièrement en anglais et ... j'ai des difficultés. Pour ta dernière phrase, c'est un programme bête : Faire un alphabet auto. C'est à dire, lorsque je marque une lettre, le programme marque automatiquement la suite mais sur la ligne de réponse au fur et à mesure (avec un timeout à chaque fois) mais le timeout veut pas ou alors, je ne sais pas l'utiliser (je pense que c'est la 2e solution). Peux-tu me dire comment faire un echo sans passer de ligne et m'expliquer l'écriture du timeout ? Merci d'avance
Coldwind, si tu as skype, je veux bien que tu m'explique ça
Coldwind, si tu as skype, je veux bien que tu m'explique ça
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: BATCH - Demande d'informations à propos de certaines command
Voilà le code pour ne pas aller à la ligne, c'est comme un tour de magie :
Concernant Batbox je t'ai rajouté un tutoriel en français
Code : Tout sélectionner
@echo off
color f0
title Alphabet Automatique V.3
:START
cls
echo Veuillez entrer une lettre en MAJUSCULE.
echo Pour arreter le programme, veuillez ecrire "STOP".
set /p saisie=
if /i "%saisie%"=="STOP" goto :eof
:: on ne récupère qu'un seul caractère dans le cas où la saisie serait composée de plusieurs lettres
set saisie=%saisie:~-1%
:: on vérifie que la lettre saisie soit bien une majuscule
echo %saisie% | findstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" > nul || goto START
:: on utilise la lettre saisie pour découper l'alphabet en deux parties (%%A et %%B)
for /f "tokens=1,2 delims=%saisie%" %%A in ('echo ABCDEFGHIJKLMNOPQRSTUVWXYZ') do (
cls
echo Veuillez entrer une lettre en MAJUSCULE.
echo Pour arreter le programme, veuillez ecrire "STOP".
echo %saisie%%%B
)
pause
exit
Modifié en dernier par barnabe0057 le 02 avr. 2017 02:18, modifié 1 fois.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: BATCH - Demande d'informations à propos de certaines command
J'ai trouvé comment ajouter une temporisation, plutôt compliqué mais ça devrait beaucoup te plaire :
Code : Tout sélectionner
@echo off
color f0
title Alphabet Automatique V.3
Setlocal enableextensions enabledelayedexpansion
:START
cls
echo Veuillez entrer une lettre en MAJUSCULE.
echo Pour arreter le programme, veuillez ecrire "STOP".
set /p saisie=
if /i "%saisie%"=="STOP" goto :eof
:: on ne récupère qu'un seul caractère dans le cas où la saisie serait composée de plusieurs lettres
set saisie=%saisie:~-1%
:: on vérifie que la lettre saisie soit bien une majuscule
echo %saisie% | findstr "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" > nul || goto START
:: on utilise la lettre saisie pour découper l'alphabet en deux parties (%%A et %%B)
for /f "tokens=1,2 delims=%saisie%" %%A in ('echo ABCDEFGHIJKLMNOPQRSTUVWXYZ') do (
if "%saisie%" == "A" (set chaine=ABCDEFGHIJKLMNOPQRSTUVWXYZ) else (set chaine=%saisie%%%B)
for /L %%K in (0,1,26) do (
set lettre=!chaine:~%%K,1!
if not "!lettre!5" == "5" (
set alpha=!alpha!!lettre!
cls
echo Veuillez entrer une lettre en MAJUSCULE.
echo Pour arreter le programme, veuillez ecrire "STOP".
echo !alpha!
ping -n 1 localhost > nul
)
)
)
Endlocal
pause
exit
Re: BATCH - Demande d'informations à propos de certaines command
Fermeture de la console avec ces caractères < > " | ^
et affichage erroné avec ceux-ci & !
et affichage erroné avec ceux-ci & !
Ton code m'intéresse, je voudrais le comparer à un des miens qui fait la même chose.cold_wind a écrit :salut, pour le timeout aussi y'a moyen de ruser. Quelques lignes de code et c'est plié.
j'en ai un a ta dispo si tu veux.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: BATCH - Demande d'informations à propos de certaines command
C'est pas très grave, ça se corrige facilement137Cs a écrit :Fermeture de la console avec ces caractères < > " | ^
et affichage erroné avec ceux-ci & !
edit : j'ai parlé trop vite, je ne sais pas trop pourquoi mais j'arrive pas à filtrer ces caractères spéciaux, surtout les <>
Re: BATCH - Demande d'informations à propos de certaines command
De retour !
Salut, cette fois ci, je souhaite créer un bouton qui, lorsque l'on clique dessus, écrive un caractère sur une ligne avec un set/p. Voici mon programme défectueux :
Salut, cette fois ci, je souhaite créer un bouton qui, lorsque l'on clique dessus, écrive un caractère sur une ligne avec un set/p. Voici mon programme défectueux :
Code : Tout sélectionner
@echo off
title [ C A L C U L A T R I C E ]
:start
cls
color 0e
echo ___________
echo ___...---°°° °°°---...___
echo __..--°° _________ °°--..__
echo _.°° .------°°°°°° °°°°°°-------. °°-._
echo .-*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*-.
echo /_.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.\
echo # 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #
echo #.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.#
echo [.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.]
echo \ / \ / \ / \ /
echo [ ] [ ] [ ] [ ]
echo [ ] [ ] C A L C U L A T R I C E [ ] [ ]
echo [ ] [ ] ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° [ ] [ ]
echo /____\ /____\ ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° /____\ /____\
echo.
echo.
batbox /c 0xe0 /d " " /c 0x0e
batbox /c 0xe0 /d " # Dites "STOP" pour arreter le processus. " /c 0x0e
batbox /c 0xe0 /d " # Veuillez entrer votre calcul a l'aide des commandes ci-dessous : " /c 0x0e
batbox /c 0xe0 /d " " /c 0x0e
echo.
echo ┌───┬─────────────────────────────┐
echo │ - │ S O U S T R A C T I O N │
echo └───┴─────────────────────────────┘
echo ┌───┬─────────────────────────────┐
echo │ * │ M U L T I P L I C A T I O N │
echo └───┴─────────────────────────────┘
echo ┌───┬─────────────────────────────┐
echo │ / │ D I V I S I O N │
echo └───┴─────────────────────────────┘
echo ┌───┬─────────────────────────────┐
echo │ + │ A D D I T I O N │
echo └───┴─────────────────────────────┘
echo.
for /F "tokens=1,2 delims=:" %%A in ('BatBox /m') do (
set Y=%%B
set X=%%A
)
if %Y% lss 22 goto start
if %Y% lss 25 echo -n "-"
if %Y% lss 28 echo -n "*"
if %Y% lss 31 echo -n "/"
if %Y% lss 34 echo -n "+"
setlocal
:debut
set /p cmdresult=Opération :
if %cmdresult%==STOP goto eof
if %cmdresult%==stop goto eof
if %cmdresult%==Stop goto eof
if %cmdresult%==RESET goto start
if %cmdresult%==reset goto start
if %cmdresult%==Reset goto start
if "%cmdresult:~0,1%"=="q" ( goto eof
)
if "%cmdresult:~0,1%"=="h" (
call hex %cmdresult:~1% >nul
goto result
)
set /a result=%cmdresult%
:result
cls
echo.
echo ╔═══════════════════════════════════════════════════════════════════╗
echo ║ R E S U L T ║
echo ╚═══════════════════════════════════════════════════════════════════╝
echo.
batbox /c 0xe0 /d " # Le resultat est %result%. " /c 0x0e
echo.
pause
goto start
:eof