Batch : aléatoire
Résolu
mael9
Messages postés
373
Date d'inscription
Statut
Membre
Dernière intervention
-
CARCY -
CARCY -
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 !
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 !
A voir également:
- Batch : aléatoire
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Renommer tous les fichiers d'un dossier - Forum Windows
- Color batch - Forum Autoit / batch
16 réponses
Tien voilà un truc que j'ai fait vite fait.
Alors le fichier phrase.txt qui contient tout plein de phrase:
Et puis le .bat qui lui comporte les commande.
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 !
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 !
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Petit problème : comment faire pour que les accents soit pris en compte ? là ça les transforme en de lettre bizarre :-/....
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 ?!
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 ?!
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
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
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
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
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....
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....
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
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
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 !
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 !
Ben topic résolu !
J'avais déja Powerbatch et j'avais jamais remarqué qu'il transformais les lettres directement les accents u_u' !
J'avais déja Powerbatch et j'avais jamais remarqué qu'il transformais les lettres directement les accents u_u' !
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 !
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 !
Topic de nouveau non résolu,
comment faire le même script sous linux(ubuntu) ? il ne connait pas certaines commande... setlocal...@echo off..
comment faire le même script sous linux(ubuntu) ? il ne connait pas certaines commande... setlocal...@echo off..
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
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
J'ai un script long de 23 lignes (sans compter les commentaires) (modifié)
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
@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
Qui marche sous windows..pas sous linux :-/ mais qui ne permet pas du "aléatoire" et à quoi sert le fichier "save.txt" ?
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
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
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
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
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
il faut que l'extention de votre fichier est .bat ou .cmd et pas .txt
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.
ajoutez a la fin de votre batch la commande pause ( juste aprés la commande msg * %phrase% )
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 ;)