Batch : aléatoire [Résolu/Fermé]

Signaler
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
-
 Cloud13 -
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

Messages postés
771
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
153
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79660 internautes nous ont dit merci ce mois-ci

Il y a toujours le même message "1702 ect." qui s'affiche.

Je te remercie de venir aussi régulièrement pour aider ;)
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
Re,

de rien, mais je vous recommande de régler votre réseau ( je ne sais pas comment ) ou peut être un virus qui fait ceci, ( mois je pense le 1er problème )
Bonsoir,
Je formate régulièrement mon ordinateur pour régler le problème des virus quand il y en a, donc le problème ne doit pas venir de là et pour le réglage du réseau je ne sais pas trop quoi faire ^^
Est-ce que le fait de n'avoir qu'une seule session d'identification sans mot de passe peut poser problème ?
D'où vient le problème selon toi ? (où quels sont les différentes sources possibles de problèmes ?) ça m'aidera peut être à trouver quoi faire pour modifier certains paramètres
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
Re: salut

ca peut être que vous avez un CD d'instalation ( xp ou vista ...) qui est peut être endommagé ou un problème dans la configuration réseau ( ca je ne sais pas )
Ah ... Cela vient probablement de mon CD d'installation alors, mais je vais quand même voir s'il y a des choses que je peux arranger dans la configuration réseau en fouillant un peu ^^
Je te remercie pour ton aide fournie depuis le début et je penserais à mettre un message ici pour te prévenir si j'arrive à résoudre le problème ;)

Bonne continuation !
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Pourrais tu me donner un exemple ?
Je viens de commencer le batch :S
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Merci je vais essayer =) ! =)

EDIT :
Merciii !! Pile ce qu'il me faut !!
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Petit problème : comment faire pour que les accents soit pris en compte ? là ça les transforme en de lettre bizarre :-/....
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
donnez moi un exemple
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
si j'ai bien compris par exemple le "é" dans le DOS est "Alt+0130"
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
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 ?!
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
oui j'ai compris et l'exemple pour vous donner une petite aide
par exemple : echo é è à , >bureau\coucou.txt tous les lettres dans l'echo vont rediriger ver le fichier coucou.txt il vous reste de copier chaque lettre de ce fichier et la remplacer par la lettre qui convient c-a-d le é est le ' et ainsi de suite
dans le block note si vous avez boucoup des phrases dans votre fichier phrase.txt donc allez dans edition et choisissez vous Remplacer ... puis tappez dans la 1er é et dans remplacer par (2ème) le ' puis clickez sur remplacer tout
mael9
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Ahhh ok je vais essayer !
En fait votre "é" qui est dans coucou.txt n'est pas vraiment un "é" comme on a sur notre clavier, c'est un "é" qui peut s'afficher en .bat !
J'essaye de suite, et merci pour la fonction remplacer je ne connaissait pas =)
mael9
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
ça ne change rien =(
J'ajoute une vidéo sur youtube pour vous montrer mes actions ;)
allez voir
http://www.youtube.com/watch?v=Kb7GDNF7K_8
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
le vidéo n'est pas de trés bon calité !! mais pas grave car j'ai remarqué que vous faites un batch pour la commande echo é è à , >bureau\coucou.txt c pour ca il vous affiche l'inverse .
bon soit de laisser ce batch et de l'inverser l'action ( echo , ? ... , >bureau\coucou.txt )
soit de tapper echo é è à , >bureau\coucou.txt directement à l'invite de commande et pas sur le fichier batch
je pense que vous avez compris
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
mael9 ? vous avez compris ?
si vous êtes un trés débutant donc je vous donne un cadeau :
telecharger powerbatch
;)
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
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....
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
salut
tappez
graftabl dans l'invite de commande et me dire si le code est 720
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Non, c'est 850
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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
Messages postés
771
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
153
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 !
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
oui c juste que je lui dit
il faut que lui remplace le é par , et ainsi de suite
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
ok j'essaie ;)
EDIT : ahhhh ça marche :P merci ^^ !
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Ben topic résolu !
J'avais déja Powerbatch et j'avais jamais remarqué qu'il transformais les lettres directement les accents u_u' !
Messages postés
771
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
153
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 !
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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 ;)
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Oui dsl mais je pensais mettre topic résolu dans un autre message ^^'
Bye ;)
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
oui
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Topic de nouveau non résolu,
comment faire le même script sous linux(ubuntu) ? il ne connait pas certaines commande... setlocal...@echo off..
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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
http://www.siteduzero.com/tutoriel-3-9678-apprenez-le-shell.html
mael9
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Ok merci !
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
Re,
de rien ;)
Messages postés
106
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
12 janvier 2013
41
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
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Qui marche sous windows..pas sous linux :-/ mais qui ne permet pas du "aléatoire" et à quoi sert le fichier "save.txt" ?
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
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
mael9
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
Ok, merci !
karirovax
Messages postés
3225
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
170
de rien ;)
theo7777
Messages postés
106
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
12 janvier 2013
41
Le script est modifié :)
mael9
Messages postés
373
Date d'inscription
vendredi 15 août 2008
Statut
Membre
Dernière intervention
7 février 2018
28
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