Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Geormarsch en 14 Febrero 2012, 20:12 pm



Título: [Batch] Extraccion de caracteres
Publicado por: Geormarsch en 14 Febrero 2012, 20:12 pm
Hola, necesito extraer Caracteres de una variable (ruta)

Código
  1. @echo off
  2. Set Ruta=C:\Musica\Melodia.mp3
  3. Echo La Cancion es %Ruta%
  4.  

Entonces quiero que al colocar Echo la cancion es %Ruta% me aparezca solo Melodia.mp3
No se si me entienden,pero si yo cambio de ruta me imprima en pantalla solo lo que hay despues del ultimo slash (\) . salu2(http://)


Título: Re: [Batch] Extraccion de caracteres
Publicado por: Eleкtro en 14 Febrero 2012, 20:58 pm
Método chapuza:

Acortar caracteres de la variable:

Código
  1. @echo off
  2. Set "Ruta=C:\Musica\Melodia.mp3"
  3. Echo La Cancion es %Ruta:~10%


Método correcto:

Expandir un parámetro:

Código
  1. @echo off
  2. Call :Expandir "C:\Musica\Melodia.mp3"
  3.  
  4. :Expandir
  5. Echo %~nx1
  6. Goto :EOF


Título: Re: [Batch] Extraccion de caracteres
Publicado por: Geormarsch en 15 Febrero 2012, 01:25 am
WTF!!!!!!!!!!!!!!!!!!!

Citar
Código
  1. @echo off
  2. Call :Expandir "C:\Musica\Melodia.mp3"
  3.  
  4. :Expandir
  5. Echo %~nx1
  6. Goto :EOF

COMO ? LO HACES :OOOOOOOOOOOOOOOOOOOOOO

Aver %~nx1 Es una variable ? xD Quiero un tutorial con eso extraño xddddd y como lo hace para explicar que despues de .... a como pero ah xd.....

GRACIAS y Salu2


Título: Re: [Batch] Extraccion de caracteres
Publicado por: Eleкtro en 15 Febrero 2012, 01:42 am
%~nx1 Es una variable ?

Nop, Es un parámetro. Se le puede llamar variable especial.

"C:\Musica\Melodia.mp3"  Es el parámetro 1 (%1), y lo expandimos a "%~nx1"  ("%~Nombre y Extensión de 1")


Aqui tienes un tutorial de Lauburu, (Y abajo hay un post mio, soy "pitoloko", con más información complementaria):

http://www.portalhacker.net/index.php/topic,149270.0.html

Salu2



Título: Re: [Batch] Extraccion de caracteres
Publicado por: Geormarsch en 15 Febrero 2012, 02:32 am
No entendi mucho me darias otro ejemplo :D


Título: Re: [Batch] Extraccion de caracteres
Publicado por: Eleкtro en 15 Febrero 2012, 03:31 am
No entendi mucho me darias otro ejemplo :D

El tutorial está muy bien explicado, Yo no puedo aportar mucho más... Estudialo, Es una parte MUY importante, Si no se sabe usar parámetros no se sabe usar batch.

Código
  1. @echo off
  2. color 07
  3.  
  4. Call :Expandir "C:\Musica\Melodia.mp3" "C:\Musikote\Base.wav"
  5.  
  6. :Expandir
  7. Echo %%1 = %1
  8. Echo %%2 = %2
  9. Echo %%~n1 = %~n1
  10. Echo %%~n2 = %~n2
  11. Echo %%~x1 = %~x1
  12. Echo %%~x2 = %~x2
  13. Echo %%~p1 = %~p1
  14. Echo %%~p2 = %~p2
  15. Echo %%~dp1 = %~dp1
  16. Echo %%~dp2 = %~dp2
  17. Echo %%~dpnx1 = %~dpnx1
  18. Echo %%~dpnx2 = %~dpnx2
  19.  
  20. Goto :EOF

(http://img36.imageshack.us/img36/3176/prtscrcapture2q.jpg)





Código
  1. @echo off
  2.  
  3. Setlocal enabledelayedexpansion
  4. Set var=ABCDELEKTROKLMNOPQRSTUVWXYZ
  5.  
  6.  
  7. Call :Short %Var% 4 7
  8. Pause
  9.  
  10.  
  11. :Short
  12. ECHO+
  13. ECHO " %%VAR%% "          = %VAR%
  14. ECHO+
  15. ECHO " %%VAR:~4,7%% "     = %VAR:~4,7%
  16. ECHO+
  17. ECHO " ^!Var:~%%2,%%3^! "   = !Var:~%2,%3!
  18. ECHO+
  19. Goto :EOF

(http://img851.imageshack.us/img851/8733/prtscrcapturevv.jpg)


Título: Re: [Batch] Extraccion de caracteres
Publicado por: leogtz en 15 Febrero 2012, 03:36 am
El tema se trata en un tema en esta misma sección.