Batch : aléatoire

Résolu/Fermé
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 - 14 avril 2010 à 22:01
 CARCY - 1 mars 2024 à 15:36
Bonjour,
Je voudrais que au démarrage de windows, un .bat s'ouvre automatiquement et écrive une phrase enregistrée dans ce .bat aléatoire (chaque démarrage une différente si possible).
Je voudrais un exemple du genre :
::::: edition du bat ::::::
phrases :
"ma phrase 1"=1; "ma phrase 2"=2; "ma phrase 3"=3...
démarrage : afficher 1
démarrage suivant : phrase précédente +1
démarrage suivant suivant : phrase précédente +1 (je pense qu'il faut faire comme ça)
si ce n'est pas possible de faire comme ça (une différente à chaque démarrage, la fonction aleatoire m'irai)
Merci de votre aide !

16 réponses

cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
Modifié par cs-bilou le 18/04/2010 à 21:44
Tien voilà un truc que j'ai fait vite fait.
Alors le fichier phrase.txt qui contient tout plein de phrase:
Salut ça va ? 
Bonjour a toi 
Hello man !! 
BlaBlaBli 
Carrote ?



Et puis le .bat qui lui comporte les commande.
@echo off 
setlocal enableDelayedExpansion 

::Nombre de phrases Total. 
set phraseTotal=0 
for /f %%i in ('type "phrase.txt"') do set /a phraseTotal+=1 


::Tirage au sort d'une des pharses. 
call set /a LignePhrase=%%random%%%%%%%phraseTotal% 


::Extraction de la phrase. 
set ligne=0 
for /f "delims=""" %%i in ('type "phrase.txt"') do ( 
if !ligne!==!LignePhrase! set phrase=%%i 
set /a ligne+=1 
) 


::Affichage de la phrase 
msg * %phrase%


Voilà il faut que tu mette le phrase.txt et le .bat dans le dossier dossier, enfin a coter.

Cordialement,
Bilou.
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
3
J'espère que tu repasseras par là car je ne comprends pas bien ce que je dois faire pour que ça marche. J'ai copié-collé à partir de @echo off, jusque %phrase% et pourtant mon fichier ne marche pas.
J'ai déjà remplacé la valeur du nombre total de phrase mais je ne vois pas ce que je dois faire en plus. (les deux fichiers sont biens dans le même dossier)

Merci d'avance =D
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
30 juil. 2010 à 20:01
salut Cloud13 ;)

il faut que l'extention de votre fichier est .bat ou .cmd et pas .txt
0
Salut karirovax
C'était déjà le cas, mais quand je le lance, il m'affiche :
"Entrez message envoyer; CTRL+Z sur nouv. ligne pour terminer message, puis ENTREE"

Et quoi que j'écrive, cmd.exe se ferme une fois que j'ai appuyé sur ctrl+z puis entrée, et je ne vois aucune modification nulle part.
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
3 août 2010 à 22:07
Re,

ajoutez a la fin de votre batch la commande pause ( juste aprés la commande msg * %phrase% )
0
Il y a du progrès =D
Mais ça ne marche toujours pas ^^'
Maintenant, il m'affiche "Erreur 1702 lors de l'obtention des noms de session"
Je vais faire une recherche google pour cette fameuse erreur mais je veux bien être éclairé ici quand même ;)
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
14 avril 2010 à 22:07
salut
je croix pas qu'un seul batch permet d'afficher des méssages a chaque démarrage mais cela devient si le batch lui même est modifié
pour les commandes
AT /?
For /?
if /?
echo /?
Goto /?
donc il vous reste d'améliorer les commandes
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
14 avril 2010 à 22:48
Pourrais tu me donner un exemple ?
Je viens de commencer le batch :S
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
15 avril 2010 à 12:31
salut
mais d'abord il faut commencer par les commandes que je vous donne ici !
si vous faites des fautes donc c'est pas grave , j'essai de vous aider
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
Modifié par mael9 le 21/04/2010 à 20:41
Merci je vais essayer =) ! =)

EDIT :
Merciii !! Pile ce qu'il me faut !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
21 avril 2010 à 21:09
Petit problème : comment faire pour que les accents soit pris en compte ? là ça les transforme en de lettre bizarre :-/....
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
21 avril 2010 à 21:47
donnez moi un exemple
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
21 avril 2010 à 21:54
si j'ai bien compris par exemple le "é" dans le DOS est "Alt+0130"
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
22 avril 2010 à 16:34
Alt+130 oui, mais dans mon fichier phrase.txt, il y a des accents par exemple :
Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.

théorie : é
espèces : è
(Chucknorrisfacts)

Et bien le message qui s'affiche ne met pas les é ou les è ou les à...ou ë ä â ê....
il me met un U avec accent à la place.... comment faire ?!
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
22 avril 2010 à 18:46
salut
dans l'invite de commande tappez :
echo é >mael9.txt
ensuite
echo è >>mael9.txt
et voilà les deux lignes sont succéssivement les é et è
donc les remplacer dans votre fichiers
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
22 avril 2010 à 20:05
Je ne comprend pas bien...cet commande permetera d'afficher les é et les è correctement ?
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
22 avril 2010 à 21:05
oui
si je fait uniquement echo é donc vous voyez les résultats directement sur l'invite par contre l'ajoute du > c'est pour la redirection ver un fichier ( dans votre cas c'est mael9.txt ) pour par exemple voir les résultats sur votre bureau sous le nom coucou.txt donc tappez echo é >Bureau\coucou.txt
dans la deuxieme line le double redirection (>>) est pour ne pas écraser la 1er par la 2eme résultat
je pense que vous avez compris
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
22 avril 2010 à 22:28
???? quoi de nouveau
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
23 avril 2010 à 22:22
Non mais ce n'est pas ce que je cherche....il ne faut pas que é et è s'écrivent dans un fichier...
Ils sont dans mon fichier phrase.txt (ou il y a des phrase avec des accents comme dit plus haut) et lorsque je lance mon fichier .bat , il tire une phrase au hasard qui est dans phrase.txt , mais il n'affiche pas bien les accents ;)
voilà mon problème,
en espèrant avoir été plus clair,
mael9
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
24 avril 2010 à 16:11
Ok je vais essayer avec Powerbatch
Mais en fait
é = ,
è = ?
à = ...
car quand je met dans l'invit de commande
echo.J'espère qu'il sera présent à la maison. > cat.txt
il mécrit ça :

J'espSre qu'il sera pr'sent ... la maison....
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
24 avril 2010 à 16:17
salut
tappez
graftabl dans l'invite de commande et me dire si le code est 720
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
24 avril 2010 à 16:31
Non, c'est 850
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
24 avril 2010 à 16:43
donc c bon
j'ai remarqué qu'il n'y a pas de problème
vous dite :
echo.J'espère qu'il sera présent à la maison. > cat.txt
il mécrit ça

J'espSre qu'il sera pr'sent ... la maison....
donc c bon car une autre execution de votre 1er exmple sur le fichier cat.txt au lieu de phrase.txt il marche trés bien
je croix que vous me comprenez pas bien ce que j'ai dit
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
Modifié par cs-bilou le 24/04/2010 à 18:56
Reuh mael9,

Avec le code que je t'ai donner normalement les caractères devrait s'afficher normalement car il s'affiche dans une boite de dialogue.

Toi ceux que tu fait, c'est que tu écrit dans un fichier texte en passant par le DOS, pour ça il faut faire:
Dans PowerBatch quand tu tape un é il te met un ,
Et bah copie le , pour le remplace a la place des é dans ton bat ouvert avec le Bloc-Note.
Ou sinon tu enregistre directement avec PowerBatch

Cordialement,
Bilou.
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
24 avril 2010 à 16:49
oui c juste que je lui dit
il faut que lui remplace le é par , et ainsi de suite
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
Modifié par mael9 le 24/04/2010 à 17:48
ok j'essaie ;)
EDIT : ahhhh ça marche :P merci ^^ !
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
24 avril 2010 à 18:09
Ben topic résolu !
J'avais déja Powerbatch et j'avais jamais remarqué qu'il transformais les lettres directement les accents u_u' !
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
Modifié par cs-bilou le 24/04/2010 à 18:56
De rien de t'avoir aider.
Si tu a d'autres question n'hésite pas a poster.

Ps: évite les double post c'est mal vue.

Cordialement,
Bilou.
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
24 avril 2010 à 19:10
oui vous avez raison
donc félicitation mael9
et si vous avez d'autres remarques/qu'estions ..etc donc on est là pour vous
cordialement ;)
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
24 avril 2010 à 18:51
Oui dsl mais je pensais mettre topic résolu dans un autre message ^^'
Bye ;)
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
24 avril 2010 à 20:04
oui
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
20 juin 2010 à 21:33
Topic de nouveau non résolu,
comment faire le même script sous linux(ubuntu) ? il ne connait pas certaines commande... setlocal...@echo off..
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
21 juin 2010 à 13:51
Re, salut
dans ubuntu il ya le shell bash ( il n y a pas @ )

pour plus d'infos va voir le site de zéro
https://openclassrooms.com/fr/courses
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
21 juin 2010 à 19:53
Ok merci !
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
21 juin 2010 à 23:21
Re,
de rien ;)
0
theo7777 Messages postés 104 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 9 janvier 2013 42
Modifié par theo7777 le 11/08/2010 à 16:29
J'ai un script long de 23 lignes (sans compter les commentaires) (modifié)
@echo off   
set phrase1=Premier phrase   
set phrase2=Deuxieme phrase   
set phrase3=Troisieme phrase   
set phrase4=blablabla   
set phrase5=Hello world   
set phrase6=...   
set phrase7=blablabla   
set phrase8=blablabla   
set phrase9=xox   
set phrase10=dix  
::debut partie modifie 
set /a nombre=(%random%%%10)+1
::fin partie modifie 
if %nombre%==1 echo %phrase1%   
if %nombre%==2 echo %phrase2%   
if %nombre%==3 echo %phrase3%   
if %nombre%==4 echo %phrase4%   
if %nombre%==5 echo %phrase5%   
if %nombre%==6 echo %phrase6%   
if %nombre%==7 echo %phrase7%   
if %nombre%==8 echo %phrase8%   
if %nombre%==9 echo %phrase9%   
if %nombre%==10 echo %phrase10%   
pause >nul


Entre debut partie modifie et fin partie modifie l'ancien code est
if not exist save.txt echo 1>save.txt
set /p nombre=<save.txt
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
8 juil. 2010 à 15:07
Qui marche sous windows..pas sous linux :-/ mais qui ne permet pas du "aléatoire" et à quoi sert le fichier "save.txt" ?
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
8 juil. 2010 à 16:13
salut mael9

le nombre aléatoire dans le bash linux c la commande RANDOM , donc essayez avec le help du commande RANDOM --help

je répond pour le fichier save.txt

dans la ligne :
if not exist save.txt echo 1>save.txt
si le fichier save.txt n'existe pas donc afficher un "1" et l'enregistre sur le fichier save.txt

set /p nombre= <save.txt
la commande set /p nombre= permet d'attendre la saisie a partir du clavier mais il ya aprés cette commande le <save.txt dans ce cas on sais que le numéro 1 est stocké dans ce fichier et tandis qu'il ya une redirection inversé ( le < inferieur) donc le contenue de ce fichier est celui de l'entrée pour la commande SET /P nombre= c-à-d si comme si on a tappé directement le numéro a partir du pavé numérique de notre clavier 1
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
8 juil. 2010 à 17:59
Ok, merci !
0
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
8 juil. 2010 à 18:14
de rien ;)
0
theo7777 Messages postés 104 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 9 janvier 2013 42
5 août 2010 à 18:46
Le script est modifié :)
0
mael9 Messages postés 373 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 7 février 2018 30
Modifié par mael9 le 6/08/2010 à 10:22
merci je vais essayer
EDIT :
Avec ce code voici l'erreur :
/home/ubuntu/Desktop/fichier.bat: line 1: @echo : commande introuvable
/home/ubuntu/Desktop/fichier.bat: line 12: Erreur de syntaxe près du symbole inattendu « ( »
/home/ubuntu/Desktop/fichier.bat: line 12: 'set /a nombre=(%random%%%10)+1 '
ubuntu@ubuntu:~$ /home/ubuntu/Desktop/fichier.bat
0