Título: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)
Publicado por: inakynet 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. 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!
Título: Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
Publicado por: Novlucker en 7 Julio 2010, 17:35 pm
Por que no haces todo desde python? :huh:
Saludos
Título: Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
Publicado por: inakynet en 7 Julio 2010, 17:37 pm
Porque no tengo ni idea de Python :-\
Título: Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
Publicado por: Novlucker 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: def cleaname(txt_name): chars = ('/',':','*','?','"','<','>','\\','&','%') for i in chars: txt_name = txt_name.replace(i,'_') return txt_name
Luego al final del script donde dice ... res = cmd(spotify) if res: print res
... que quede así: res = cmd(spotify) if res: print cleaname(res)
Con eso debe de ser suficiente :P Saludos
Título: Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & %
Publicado por: inakynet 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!!!
Título: Re: BATCH: Eliminar caracteres "raros" de un txt: \ / : * ? " < > \ & % (RESUELTO)
Publicado por: Novlucker 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
|