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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Ayuda] Se queda sin valor la variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Se queda sin valor la variable  (Leído 2,968 veces)
sabeeee

Desconectado Desconectado

Mensajes: 155


Ver Perfil
[Ayuda] Se queda sin valor la variable
« en: 9 Diciembre 2014, 22:43 pm »

Muchas gracias por visitar.

Hace mucho había visto este código muy bueno:
Código:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
set linea=!linea:Perl=C!
call :show !linea!
)
goto:eof
:show
echo %* >> out.txt
goto:eof

Y lo pensé usar en este código para ripear juegos que funciona de forma excelente.

Código:
@echo off
::Sistema MP3 a OGG::
::Variables::
::Extension::
::Entra (diseñado para MP3)
set mp3int=mp3
::Wav (temporal)
set tempwav=wavtmp
::Sale (diseñado para OGG)
set oggext=mp3.ogg
::Calidad::
set configogg=-q 2.50
::Codigo
setlocal enabledelayedexpansion
for /R %%x in (*.%mp3int%) do (
set linea=%%x
set linea=!linea:.mp3=!
call :show !linea!
)
goto:eof
:show
lame --decode "%*.%mp3int%" "%*.%tempwav%"
oggenc2 %configogg% "%*.%tempwav%" -o "%*.%oggext%"
del "%*.%mp3int%" /s
del "%*.%tempwav%" /s
)
goto:eof

Pero hay un inconveniente... :(
Cuando paso
Código:
set linea=!linea:.mp3=!
a
Código:
set linea=!linea:.%mp3int%=!

La variable %mp3int% ya no responde ¿Como puedo solucionar esto?.

Muchas gracias, agradecido con ustedes por siempre...




En línea

"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Ayuda] Se queda sin valor la variable
« Respuesta #1 en: 9 Diciembre 2014, 23:18 pm »

( Sin examinar demasiado el código ), prueba así:

Código:
Call set linea=!linea:.%%mp3int%%=!

Saludos


En línea



sabeeee

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: [Ayuda] Se queda sin valor la variable
« Respuesta #2 en: 10 Diciembre 2014, 02:44 am »

( Sin examinar demasiado el código ), prueba así:

Código:
Call set linea=!linea:.%%mp3int%%=!

Saludos

Esta vez no funciono amigo.
En línea

"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [Ayuda] Se queda sin valor la variable
« Respuesta #3 en: 10 Diciembre 2014, 13:24 pm »

Estás haciendo un reemplazamiento de variable que resulta innecesario ya que solo pretendes quitar la extensión del archivo, pero Batch pone a tu disposición las variables especiales de FOR y éstas tienen modificadores de variable, los cuales ya hacen esa tarea por ti.

He editado bastante el código, aunque no se si es esto lo que quieres:

Código
  1. set "InExt=mp3"         :: Input file ext.
  2. set "OutExt=ogg"        :: Out   file ext.
  3. set "configogg=-q 2.50" :: ogg encoder parameters.
  4.  
  5. For /R %%# in (
  6. "*.%InExt%"
  7. ) Do (
  8. Call :Convert "%%~f#" "%%~dp#" "%%~n#" "%%~x#" "%OutExt%"
  9. )
  10.  
  11. :Convert
  12. :: %1=Full path
  13. :: %2=Directory name
  14. :: %3=File name
  15. :: %4=File Ext.
  16. :: %5=Output Ext.
  17.  
  18. Echo File: "%~1"
  19. Echo Decode into: "%TEMP%\%~3%~4.tmp"
  20. Echo Encode into: "%~2%~3.%~5"
  21.  
  22. Lame.exe    --decode    "%~1"                  "%TEMP%\%~3%~4.tmp"
  23. oggenc2.exe %configogg% "%TEMP%\%~3%~4.tmp" -o "%~2%~3.%~5"
  24.  
  25. Del /Q "%TEMP%\%~3%~4.tmp"
  26. Goto :EOF

PD: El codificador de Ogg vorbis no puede convertir directamente el archivo mp3 a ogg?, creo que usar lame para decodificar a wave es un paso innecesario.

Saludos
« Última modificación: 10 Diciembre 2014, 13:29 pm por Eleкtro » En línea



sabeeee

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: [Ayuda] Se queda sin valor la variable
« Respuesta #4 en: 10 Diciembre 2014, 16:06 pm »

Estás haciendo un reemplazamiento de variable que resulta innecesario ya que solo pretendes quitar la extensión del archivo, pero Batch pone a tu disposición las variables especiales de FOR y éstas tienen modificadores de variable, los cuales ya hacen esa tarea por ti.

He editado bastante el código, aunque no se si es esto lo que quieres:

Código
  1. set "InExt=mp3"         :: Input file ext.
  2. set "OutExt=ogg"        :: Out   file ext.
  3. set "configogg=-q 2.50" :: ogg encoder parameters.
  4.  
  5. For /R %%# in (
  6. "*.%InExt%"
  7. ) Do (
  8. Call :Convert "%%~f#" "%%~dp#" "%%~n#" "%%~x#" "%OutExt%"
  9. )
  10.  
  11. :Convert
  12. :: %1=Full path
  13. :: %2=Directory name
  14. :: %3=File name
  15. :: %4=File Ext.
  16. :: %5=Output Ext.
  17.  
  18. Echo File: "%~1"
  19. Echo Decode into: "%TEMP%\%~3%~4.tmp"
  20. Echo Encode into: "%~2%~3.%~5"
  21.  
  22. Lame.exe    --decode    "%~1"                  "%TEMP%\%~3%~4.tmp"
  23. oggenc2.exe %configogg% "%TEMP%\%~3%~4.tmp" -o "%~2%~3.%~5"
  24.  
  25. Del /Q "%TEMP%\%~3%~4.tmp"
  26. Goto :EOF

PD: El codificador de Ogg vorbis no puede convertir directamente el archivo mp3 a ogg?, creo que usar lame para decodificar a wave es un paso innecesario.

Saludos

Jajaja, no se que decir es excelente! Hoy aprendí mucho. Y no lamentablemente no hay soporte nativo, ya que ambos son competencia. Lo único que no se te ocurra poner eso el la raíz de tu disco.
« Última modificación: 10 Diciembre 2014, 16:14 pm por sabeeee » En línea

"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines