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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)  (Leído 12,728 veces)
inakynet

Desconectado Desconectado

Mensajes: 3


Ver Perfil
BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)
« en: 7 Julio 2010, 17:31 pm »

He creado (tras mucho sudor, esfuerzo y poco tiempo libre... el que tenga hijos/as lo entenderá) el siguiente BATCH para grabar música de Spotify de forma desatendida. Seguro que es una "chapucilla" y provoco risas a más de uno/a, pero el caso es que ¡funciona!, excepto con canciones que tienen los siguientes caracteres raros:  \ / : * ? " < > \ & %

¿De que forma puedo eliminar esos caracteres? Por ejemplo, un fichero TXT que los contenga, eliminarlos de ese TXT y almacenar el resultado en una variable.

Os pego el código del Batch.

Código:

echo off

REM **** Modifica el valor de la ruta donde se grabarán los MP3
REM **** Por ejemplo: set ruta=E:\Grabaciones\

set ruta=E:\Grabaciones\

REM ****

cls
echo                 ***   MP3Tify    ***
echo -----------------------------------------------------
echo  Graba tus canciones de Spotify de forma desatendida
echo -----------------------------------------------------
echo Pon Spotify a sonar y ajusta el nivel de sonido.
echo Recomendamos grabar por "Mezcla Stereo".
echo .
echo Se guardarán las grabaciones en la ruta %ruta%
echo Si quieres grabar los ficheros en una ruta diferente,
echo edita este fichero y cambia el valor de set ruta al
echo principio del fichero.
echo Control + Z para terminar (y cierras tu mismo el HDOGG)
pause

:inicio
cls
echo Esperando inicio de pista ...
C:\Python26\python.exe c:\Python26\pytify.py status >estado1.txt
for /f "tokens=*" %%x in (estado1.txt) do (set estado1=%%x)


:bucle
ping -n 2 127.0.0.1 >nul
C:\Python26\python.exe c:\Python26\pytify.py status >estado2.txt
for /f "tokens=*" %%x in (estado2.txt) do (set estado2=%%x)


if "%estado1%"=="%estado2%" goto :bucle
if not "%pista1%"=="%pista2%" goto :grabar

:grabar
C:\HDOgg\Harddisk.exe -quit
Echo %date:~0,10% %time:~0,8% - OK
C:\Python26\python.exe c:\Python26\pytify.py currentartist >artista.txt
C:\Python26\python.exe c:\Python26\pytify.py currenttrack >titulo.txt
C:\Python26\python.exe c:\Python26\pytify.py status >estado1.txt
for /f "tokens=*" %%x in (artista.txt) do (set artista=%%x)
for /f "tokens=*" %%x in (titulo.txt) do (set titulo=%%x)
for /f "tokens=*" %%x in (estado1.txt) do (set estado1=%%x)

set cancion=%artista% - %titulo%.mp3
set cancion=%cancion:/= %
set cancion=%cancion:\= %
set cancion=%cancion::= %
set cancion=%cancion:?= %
set cancion=%ruta%%cancion:?= %

echo %date:~0,10% %time:~0,8% - Grabando %cancion% ...

start /b C:\HDOgg\Harddisk.exe -record -silent -nofocus -preset C:\HDOgg\none.hdp -filter C:\HDOgg\none.hfs -overwrite -output "%cancion%"
goto :bucle


Gracias por anticipado, un cordial saludo!


« Última modificación: 7 Julio 2010, 18:45 pm por inakynet » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
« Respuesta #1 en: 7 Julio 2010, 17:35 pm »

Por que no haces todo desde python?  :huh:

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
inakynet

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
« Respuesta #2 en: 7 Julio 2010, 17:37 pm »

Porque no tengo ni idea de Python  :-\
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
« Respuesta #3 en: 7 Julio 2010, 18:14 pm »

Asumo que utilizas este :http://code.google.com/p/pytify/

Abre el pytify.py desde el bloc de notas (guarda una copia antes por si acaso)
Antes del if __name__ == "__main__": agrega lo siguiente:
Código
  1. def cleaname(txt_name):
  2. chars = ('/',':','*','?','"','<','>','\\','&','%')
  3. for i in chars:
  4. txt_name = txt_name.replace(i,'_')
  5. return txt_name

Luego al final del script donde dice ...
Código
  1. res = cmd(spotify)
  2. if res: print res

... que quede así:
Código
  1. res = cmd(spotify)
  2. if res: print cleaname(res)

Con eso debe de ser suficiente :P

Saludos
« Última modificación: 7 Julio 2010, 18:15 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
inakynet

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
« Respuesta #4 en: 7 Julio 2010, 18:41 pm »

Muchísimas gracias, con tu solución esto "pirula" perfecto.  ;-) Ni que decir tiene que sois unos "monstruos", ¡cuanto se aprende por estos foros!.

Un cordial saludo!!!

En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)
« Respuesta #5 en: 7 Julio 2010, 19:01 pm »

Excelente!, lo que me preocupaba era que el py fuera otro, pero si ha quedado bien! ;D

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] cambiar ultimos caracteres "ren" [Solucionado]
Scripting
romanjr 5 5,575 Último mensaje 16 Febrero 2011, 07:22 am
por romanjr
[Arreglos] "Array required but int found" [RESUELTO]
Java
klaine 2 8,153 Último mensaje 13 Abril 2011, 22:10 pm
por klaine
[Resuelto] TV LG dice: "Power Only Version"
Dudas Generales
Krähne 2 25,473 Último mensaje 20 Mayo 2011, 22:07 pm
por Krähne
(RESUELTO Gracias ) Ayuda con programa "regresar al inicio"
Programación C/C++
Ruben_efl18 3 3,179 Último mensaje 16 Abril 2013, 04:11 am
por Ruben_efl18
[BATCH] Leer con FOR "caracteres especiales" de un archivo.
Scripting
Segadorfelix 2 3,350 Último mensaje 20 Abril 2019, 22:42 pm
por Segadorfelix
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines