elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Solucionado) [Batch] Randomizar lineas en un txt?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) [Batch] Randomizar lineas en un txt?  (Leído 12,210 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
(Solucionado) [Batch] Randomizar lineas en un txt?
« en: 1 Marzo 2012, 18:57 pm »

¿Como randomizar el contenido de un txt?  :huh:

Es lo único que me falta para acabar este script :P

PD: Acepto cualquier utilidad externa
PD2: Si existiera algún parámetro para iniciar Winamp con la opcion "Activar modo aleatorio de lista" activada, también me serviría...

un saludo

Código
  1. @Echo OFF
  2.  
  3. Set Carpeta=%~n0
  4.  
  5. Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
  6. For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo %%$>>"%Temp%\Lista Winamp.m3u")
  7. REM Aqui iría el randomizado
  8. Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"


« Última modificación: 1 Marzo 2012, 19:45 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [Batch] Randomizar lineas en un txt?
« Respuesta #1 en: 1 Marzo 2012, 19:45 pm »

Ya se me ocurrió la forma, sorry


Código
  1. @Echo OFF
  2. Setlocal enabledelayedexpansion
  3.  
  4. Set Carpeta=%~n0
  5.  
  6. Echo #EXTM3U>"%Temp%\Lista Winamp.tmp"
  7. For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo  !Random!!Random!!Random!;%%$>>"%Temp%\Lista Winamp.tmp")
  8.  
  9. Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
  10. For /F "Tokens=2* Delims=;" %%a in ('Type "%Temp%\Lista Winamp.tmp" ^| Sort ') do (Echo  %%a>>"%Temp%\Lista Winamp.m3u")
  11. Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"
  12.  


« Última modificación: 6 Octubre 2013, 19:54 pm por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #2 en: 6 Octubre 2013, 19:40 pm »

Reviviendo esto... una duda... yo lo uso así pero como decirle que solo haga una lista de reproducción de, por ejemplo unos 10 archivos, o 5 archivos...  ;-)

gracias


Código
  1. @Echo OFF
  2. Title %~n0
  3. Mode con cols=50 lines=3
  4. Setlocal enabledelayedexpansion
  5. chcp 1252 >NUL
  6. For /F "Tokens=*" %%$ in ('Dir /B /S "%~dp0" ^| Findstr /R ".avi .mkv"') do (Echo !Random!!Random!!Random!;%%$>>"%Temp%\Lista Winamp.tmp")
  7. Echo #EXTm3u8>"%Temp%\Lista Winamp.m3u8"
  8. For /F "Tokens=2* Delims=;" %%$ in ('Type "%Temp%\Lista Winamp.tmp" ^| Sort ') do (Echo %%$>>"%Temp%\Lista Winamp.m3u8")
  9. Start /B "%PROGRAMFILES(X86)%\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u8"
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #3 en: 6 Octubre 2013, 20:11 pm »

como decirle que solo haga una lista de reproducción de, por ejemplo unos 10 archivos, o 5 archivos...  ;-)

Código
  1. @Echo OFF & chcp 1252 >NUL & Setlocal enabledelayedexpansion
  2. REM Title %~n0 & Mode con cols=50 lines=3
  3.  
  4. Set /A "MAX=5"
  5. Set "TMP_Playlist=%Temp%\Playlist.tmp"
  6. Set "Playlist=%Temp%\Playlist.m3u8"
  7.  
  8. :List
  9. (
  10. For /F "Tokens=*" %%$ in (
  11.     'Dir /B /S "%~dp0" ^| Findstr /I /R "\.avi$ \.mkv$"'
  12. ) DO (
  13.     Echo !Random!!Random!!Random!;%%$
  14. )
  15. )>"%TMP_Playlist%"
  16.  
  17. :Randomize
  18. (
  19. Echo #EXTm3u8
  20. For /F "Tokens=2* Delims=;" %%$ in (
  21.     'Type "%TMP_Playlist%" ^| Sort '
  22. ) DO (
  23. Set /A "Count+=1"
  24.     If !COUNT! LSS %MAX% (
  25.         Echo %%$
  26.     ) ELSE (
  27.         Goto :Run
  28.     )
  29. )
  30. )>"%Playlist%"
  31.  
  32. :Run
  33. Start /B "" "%PROGRAMFILES(X86)%\Winamp\winamp.exe" "%Playlist%" || (Exit /B 1)
  34.  
  35. Exit /B 0

Saludos!
« Última modificación: 7 Octubre 2013, 00:25 am por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #4 en: 6 Octubre 2013, 23:37 pm »

gracias EleKtro.... como siempre las mejores respuestas
En línea

Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #5 en: 9 Octubre 2013, 09:52 am »

abusando de la confianza podría ser modificado el código para que en lugar de reproducir se añadan a la cola de archivos para reproducir..
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #6 en: 9 Octubre 2013, 16:02 pm »

Hola


El switch "/ADD" de la aplicación WinAmp sirve precísamente para cargar un archivo sin iniciar su reproducción automática.

Para WinAmp:
Código
  1. Start /B "" "%PROGRAMFILES(X86)%\Winamp\winamp.exe" /ADD "%Playlist%" || (Exit /B 1)

(Información adicional) Para MPC-HC:
Código
  1. Start /B "" "Ruta de MediaPlayerClassic HomeCinema.exe" /Open "%Playlist%" || (Exit /B 1)


PD: De otra forma esto no sería posible hacerlo usando un lenguaje tan simple como Batch, leete la documentación CommandLine del programa.


Haz el favor de comunicar por aquí si el problema está solucionado para cerrar este hilo y que no se vuelva a revivir.


Saludos!
« Última modificación: 9 Octubre 2013, 16:05 pm por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #7 en: 11 Octubre 2013, 01:59 am »

maestro tengo una duda...

cuando coloco el archivo de aplicación

clever.exe

en otra carpeta siempre del escritorio el código se cierra y no me funciona...

pensé remediarlo de esto:
Código
  1. IF %ERRORLEVEL% LEQ 0 cd %UserProfile%\Desktop\clever pause | clever.exe pause >nul & goto :Comprobar

a esto pero no me funciono:
Código
  1. IF %ERRORLEVEL% LEQ 0 FOR /R %%_ in (*clever.exe) do ("%%_") | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #8 en: 11 Octubre 2013, 02:56 am »

Mientras sigas escribiendo código de la manera en la que lo estás haciendo, los errores no van a cesar.

1. Usa los operadores de agrupación para agrupar los comandos ().

2. Encierra todos los argumentos "" (sobretodo el de la ruta de directorio...).

3. Comprueba si el error se solucionó.

Saludos
« Última modificación: 11 Octubre 2013, 02:58 am por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: (Solucionado) [Batch] Randomizar lineas en un txt?
« Respuesta #9 en: 11 Octubre 2013, 06:03 am »

maestro perdón por 2 cosa

la primera por colocar  la pregunta en el tema equivocado y la segunda por la preguntadera... si no entendí mal solo debo agregar () a la ruta:

Código
  1. IF %ERRORLEVEL% LEQ 0 (FOR /R %%_ in (*clever.exe) do ("%%_")) | clever.exe pause >nul | Taskkill /f /IM TxtTick.exe >nul & goto :Esperar

En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Función año bisiesto de 3 líneas.
Scripting
0x0309 5 6,748 Último mensaje 5 Mayo 2009, 16:33 pm
por 0x0309
Leer líneas de archivo no funciona en doble ciclo FOR (batch) (SOLUCIONADO)
Scripting
<ИΘZIЭ(ŦB> 3 8,814 Último mensaje 1 Octubre 2009, 04:13 am
por leogtz
Sentencia batch en varias lineas[Solucionado]
Scripting
50l3r 4 7,672 Último mensaje 27 Marzo 2010, 02:07 am
por 50l3r
[BATCH] Randomizar listas m3u
Scripting
morgothic 9 8,857 Último mensaje 15 Octubre 2012, 13:40 pm
por morgothic
[BATCH]limite en el tamaño de lineas
Scripting
z_ane_666 3 3,322 Último mensaje 4 Julio 2013, 22:23 pm
por zikotik
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines