Lote: aleatorio
Resuelto
mael9
Mensajes publicados
373
Fecha de registro
Estado
Miembro
Última intervención
-
CARCY -
CARCY -
Bonjour,
Quiero que al arrancar Windows se abra automáticamente un archivo .bat y escriba una frase almacenada en ese .bat de forma aleatoria (cada inicio una diferente si es posible).
Me gustaría un ejemplo del tipo:
::::: edición del bat ::::::
frases :
"mi frase 1"=1; "mi frase 2"=2; "mi frase 3"=3...
arranque : mostrar 1
arranque siguiente : frase anterior +1
arranque siguiente siguiente : frase anterior +1 (creo que así debe hacerse)
si no es posible hacer que sea diferente en cada arranque, la función aleatoria me serviría
¡Gracias por vuestra ayuda!
Quiero que al arrancar Windows se abra automáticamente un archivo .bat y escriba una frase almacenada en ese .bat de forma aleatoria (cada inicio una diferente si es posible).
Me gustaría un ejemplo del tipo:
::::: edición del bat ::::::
frases :
"mi frase 1"=1; "mi frase 2"=2; "mi frase 3"=3...
arranque : mostrar 1
arranque siguiente : frase anterior +1
arranque siguiente siguiente : frase anterior +1 (creo que así debe hacerse)
si no es posible hacer que sea diferente en cada arranque, la función aleatoria me serviría
¡Gracias por vuestra ayuda!
16 respuestas
-
Aquí tienes algo que hice rápido.
Entonces el archivo phrase.txt que contiene un montón de frases:Salut ça va ? Bonjour a toi Hello man !! BlaBlaBli Carrote ?
Y luego el .bat que contiene los comandos.@echo off setlocal enableDelayedExpansion ::Número de frases Total. set phraseTotal=0 for /f %%i in ('type "phrase.txt"') do set /a phraseTotal+=1 ::Selección al azar de una de las frases. call set /a LignePhrase=%%random%%%%%%%phraseTotal% ::Extracción de la frase. set ligne=0 for /f "delims=""" %%i in ('type "phrase.txt"') do ( if !ligne!==!LignePhrase! set phrase=%%i set /a ligne+=1 ) ::Mostrar la frase msg * %phrase%
Voilà, tienes que colocar el phrase.txt y el .bat en la carpeta dossier, bueno, al lado.
Cordialmente,
Bilou.
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !-
Espero que vuelvas por aquí porque no entiendo bien qué debo hacer para que funcione. Copié-pegué desde @echo off, hasta %phrase% y aun así mi archivo no funciona.
Ya he reemplazado el valor del número total de frases pero no veo qué más debo hacer. (los dos archivos están en la misma carpeta)
Gracias de antemano =D -
-
-
-
-
-
hola
no creo que un solo batch permita mostrar mensajes en cada inicio, pero eso cambia si el propio batch es modificado
para los comandos
AT /?
For /?
if /?
echo /?
Goto /?
así que les queda mejorar los comandos -
¿Podrías darme un ejemplo?
Acabo de empezar el batch :S -
Gracias, voy a intentarlo =) ! =)
EDIT :
¡Muchas gracias!! ¡Justo lo que necesito!! -
Pequeño problema: ¿cómo hacer para que se tengan en cuenta los acentos? ahora los transforma en letras extrañas :-/....
-
Alt+130 sí, pero en mi archivo frase.txt hay acentos, por ejemplo:
No hay teoría de la evolución. Solo una lista de especies que Chuck Norris autoriza a sobrevivir.
teoría : é
especies : è
(Chucknorrisfacts)
Y bueno, el mensaje que aparece no pone las e con acento ni è ni à... ni ë ä â ê....
me pone una U con acento en su lugar.... ¿cómo hago?!-
-
-
sí
si hago únicamente echo é entonces ves los resultados directamente en la consola, pero añadir el > es para la redirección hacia un archivo (en tu caso es mael9.txt) para, por ejemplo, ver los resultados en tu escritorio con el nombre coucou.txt por lo que escribe echo é >Bureau\coucou.txt
en la segunda línea la doble redirección (>>) es para no sobrescribir el primer resultado con el segundo
creo que ya lo has entendido -
-
No, pero no es lo que busco... no deben escribirse é y è en un archivo...
Están en mi archivo phrase.txt (donde hay frases con acentos como se dijo antes) y cuando ejecuto mi archivo .bat, toma una frase al azar que está en phrase.txt, pero no muestra bien los acentos ;)
aquí está mi problema,
esperando haber sido más claro,
mael9
-
-
Ok, voy a intentarlo con Powerbatch
Pero en realidad
é = ,
è = ?
à = ...
porque cuando lo pongo en el símbolo del sistema
echo.J'espère qu'il sera présent à la maison. > cat.txt
él escribe eso :
J'espSre qu'il sera pr'sent ... la maison.... -
-
entonces está bien
he notado que no hay problema
usted dice:
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....
entonces está bien porque otra ejecución de su primer ejemplo en el archivo cat.txt en lugar de phrase.txt funciona muy bien
creo que no me entiende bien lo que dije
-
-
Hola Bilou,
Con el código que te di normalmente los caracteres deberían mostrarse correctamente ya que se muestran en una ventana de diálogo.
Lo que haces tú es escribir en un archivo de texto pasando por DOS, para eso hay que hacer:
En PowerBatch, cuando escribes una é, te pone una ,
Y bueno, copia la , para reemplazarla en lugar de las é en tu bat abierto con el Bloc-Notes.
O si no, simplemente guarda directamente con PowerBatch.
Atentamente,
Bilou.
Hay días en los que no hay que buscarme.
¡Y hay días que todos los días! -
ok intento ;)
EDIT : ahhhh funciona :P gracias ^^ ! -
Ben topic résolu !
J'avais déja Powerbatch et j'avais jamais remarqué qu'il transformais les lettres directement les accents u_u' ! Tema resuelto!
Ya tenía Powerbatch y nunca me había dado cuenta de que transformaba las letras directamente los acentos u_u' ! -
De nada por haberte ayudado. Si tienes otra pregunta, no dudes en publicar.
Ps: evita los mensajes duplicados, está mal visto.
Atentamente,
Bilou.
Hay días en los que no hay que buscarme.
¡Y hay días en los que todos los días! -
Sí, lo siento, pero pensaba poner "tema resuelto" en otro mensaje ^^'
Adiós ;) -
Tema no resuelto de nuevo,
¿cómo hacer el mismo script en Linux (Ubuntu)? no conoce ciertos comandos... setlocal...@echo off..-
Hola, en Ubuntu hay un shell bash (no hay @)
para más información visita el sitio de zéro
https://openclassrooms.com/fr/courses -
-
-
-
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én corre bajo Windows... no bajo Linux :-/ pero que no permite el "aleatorio" y para qué sirve el archivo "save.txt"?
-
hola mael9
el número aleatorio en bash de linux es la orden RANDOM, así que intenten con la ayuda de la orden RANDOM --help
respondo para el archivo save.txt
en la línea :
if not exist save.txt echo 1>save.txt
si el archivo save.txt no existe entonces muestra un "1" y lo guarda en el archivo save.txt
set /p nombre= <save.txt
la orden set /p nombre= permite esperar la entrada desde el teclado pero hay después de esta orden el <save.txt en este caso sabemos que el número 1 está almacenado en este archivo y mientras hay una redirección inversa ( el < menor) así que el contenido de este archivo es el de la entrada para la orden SET /P nombre= es decir si como si hubiéramos escrito directamente el número desde el teclado numérico 1 -
-
-
-
gracias, voy a intentarlo
EDITAR :
Con este código aquí está el error :
/home/ubuntu/Desktop/fichier.bat: línea 1: @echo : comando no encontrado
/home/ubuntu/Desktop/fichier.bat: línea 12: error de sintaxis cerca del símbolo inesperado « ( »
/home/ubuntu/Desktop/fichier.bat: línea 12: 'set /a nombre=(%random%%%10)+1 '
ubuntu@ubuntu:~$ /home/ubuntu/Desktop/fichier.bat
-