Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ovichan en 25 Octubre 2012, 18:40 pm



Título: [Batch] Conservar caracteres especiales usando delayedexpansion
Publicado por: ovichan en 25 Octubre 2012, 18:40 pm
Buenas, en esta ocasion estoy haciendo un listado de unos archivos matroska, y usando el for con tokens, para seleccionar la parte a guardar en la lista. Al tener que usar enableddelayedexpasion, ciertos caracteres son destruidos. He intentado cambiar el chcp pero sin resultado. El codigo es este:

Código:
@echo off
Title Listar nombres capitulos
Setlocal EnableDelayedExpansion

rem CHCP 850 >nul
if exist "lista.txt" (erase "lista.txt")

for /f "tokens=2 delims=[]" %%i in ('dir /b /o:n "*.mkv"') do (

set "nom=%%i"

echo !nom:~1! >> "lista.txt"
 )

pause

Lo curioso es que si lo ejecuto desde cmd, se muestra perfectamente con sus caracteres.

Original

(http://s17.postimage.org/qbw357xf3/Sin_t_tulo2.png)

Queda algo asi sin extenderme:

(http://s14.postimage.org/t8ls2d2mp/Sin_t_tulo.png)


Título: Re: [Batch] Conservar caracteres especiales usando delayedexpansion
Publicado por: Eleкtro en 25 Octubre 2012, 20:39 pm
Creo que ya te expliqué los inconvenientes de habilitar la expansión en ocasiones como esta... No sigas usandolo para procesar nombres de archivos como estos... No lo digo por los caracteres latinos (Que eso es problema del código de páginas, no estás usando el adecuado), sinó por las exclamaciones "!" que son inseteables al expandir.

Código
  1. @echo off
  2. Title Listar nombres capitulos
  3.  
  4. REM Esto para el alfabeto latino
  5. CHCP 1250 >nul
  6.  
  7. if exist "lista.txt" (erase "lista.txt")
  8.  
  9. for /f "tokens=2 delims=[]" %%i in ('dir /b /o:n "*.mkv"') do (
  10.  
  11. set "nom=%%i"
  12.  
  13.         REM Y esto para evitar la expansión y no perder otros caracteres.
  14. CALL Echo %%nom:~1%%>>"lista.txt"
  15. )
  16.  
  17. Pause&Exit

Saludos



EDITO: unas preguntas tontas Ovichan xD...
¿ese magnifico rip que ven mis ojos es tuyo?
Si conoces el ripeo de "Buiza" del foro AnimeHD, siendo sincero, ¿El tuyo tiene mejor calidad/tamaño? es que al ver "mkv" me asusta el tamaño.
¿Puedes decirme cuanto pesaría aprox. un capitulo de esos dejando solo el audio castellano?

-- ¿Está completado y posteado en evoshare ya?

PD: Vaya un offtopic xD


Título: Re: [Batch] Conservar caracteres especiales usando delayedexpansion
Publicado por: ovichan en 25 Octubre 2012, 21:53 pm
Creo que ya te expliqué los inconvenientes de habilitar la expansión en ocasiones como esta... No sigas usandolo para procesar nombres de archivos como estos... No lo digo por los caracteres latinos (Que eso es problema del código de páginas, no estás usando el adecuado), sinó por las exclamaciones "!" que son inseteables al expandir.

Código
  1. @echo off
  2. Title Listar nombres capitulos
  3.  
  4. REM Esto para el alfabeto latino
  5. CHCP 1250 >nul
  6.  
  7. if exist "lista.txt" (erase "lista.txt")
  8.  
  9. for /f "tokens=2 delims=[]" %%i in ('dir /b /o:n "*.mkv"') do (
  10.  
  11. set "nom=%%i"
  12.  
  13.         REM Y esto para evitar la expansión y no perder otros caracteres.
  14. CALL Echo %%nom:~1%%>>"lista.txt"
  15. )
  16.  
  17. Pause&Exit

Saludos



EDITO: unas preguntas tontas Ovichan xD...
¿ese magnifico rip que ven mis ojos es tuyo?
Si conoces el ripeo de "Buiza" del foro AnimeHD, siendo sincero, ¿El tuyo tiene mejor calidad/tamaño? es que al ver "mkv" me asusta el tamaño.
¿Puedes decirme cuanto pesaría aprox. un capitulo de esos dejando solo el audio castellano?

-- ¿Está completado y posteado en evoshare ya?

PD: Vaya un offtopic xD
Si ya se que me lo explicaste pero soy un poco cerril jajaja o es que no entiendo muy bien.

En cuanto al off, pues si este rip es mio. En cuanto al tamaño, no dudes que van a pesar pues uso la opcion de codificacion crf, que hace que sea indeterminable el tamaño del video pero asegura la mejor calidad. Pues para ser sinceros, a cada capitulo le adjunto archivos necesarios de recuperacion para una posterior edicion si fuese necesaria,por tanto eliminando este archivo mas el audio japo, creo que se quedaria cada capi en unos 350~400Mb.

Conozco a Ojisan de AnimeHD, pero nada mas lo siento.


AAAA y gracias por el codigo, lo voy a probar inmediatamente.


Título: Re: [Batch] Conservar caracteres especiales usando delayedexpansion
Publicado por: ovichan en 25 Octubre 2012, 22:52 pm
Bueno como unico inconveniente es que el simbolo ¿ lo transforma a ?, pero bueno da igual me sirve. Gracias.

El call del echo no lo habia visto antes, y no tengo ni idea pa que sirve, lo de los dobles porcentajes ya me explicaste que era para obtener el valor de la variable local.

Gracias Elektro