[Batch] Extraccion de caracteres

Iniciado por Geormarsch, 14 Febrero 2012, 20:12 PM

0 Miembros y 2 Visitantes están viendo este tema.

Geormarsch

Hola, necesito extraer Caracteres de una variable (ruta)

Código (dos) [Seleccionar]

@echo off
Set Ruta=C:\Musica\Melodia.mp3
Echo La Cancion es %Ruta%
Pause


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
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Eleкtro

Método chapuza:

Acortar caracteres de la variable:

Código (DOS) [Seleccionar]
@echo off
Set "Ruta=C:\Musica\Melodia.mp3"
Echo La Cancion es %Ruta:~10%
Pause



Método correcto:

Expandir un parámetro:

Código (DOS) [Seleccionar]
@echo off
Call :Expandir "C:\Musica\Melodia.mp3"
Pause

:Expandir
Echo %~nx1
Goto :EOF








Geormarsch

WTF!!!!!!!!!!!!!!!!!!!

Citar
Código (Dos) [Seleccionar]

@echo off
Call :Expandir "C:\Musica\Melodia.mp3"
Pause

:Expandir
Echo %~nx1
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
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Eleкtro

#3
Cita de: geormarsch en 15 Febrero 2012, 01:25 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









Geormarsch

No entendi mucho me darias otro ejemplo :D
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Eleкtro

Cita de: geormarsch en 15 Febrero 2012, 02:32 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 (dos) [Seleccionar]
@echo off
color 07

Call :Expandir "C:\Musica\Melodia.mp3" "C:\Musikote\Base.wav"
Pause

:Expandir
Echo %%1 = %1
Echo %%2 = %2
Echo+
Echo %%~n1 = %~n1
Echo %%~n2 = %~n2
Echo+
Echo %%~x1 = %~x1
Echo %%~x2 = %~x2
Echo+
Echo %%~p1 = %~p1
Echo %%~p2 = %~p2
Echo+
Echo %%~dp1 = %~dp1
Echo %%~dp2 = %~dp2
Echo+
Echo %%~dpnx1 = %~dpnx1
Echo %%~dpnx2 = %~dpnx2
Echo+

Goto :EOF








Código (BASH) [Seleccionar]
@echo off

Setlocal enabledelayedexpansion
Set var=ABCDELEKTROKLMNOPQRSTUVWXYZ


Call :Short %Var% 4 7
Pause


:Short
ECHO+
ECHO " %%VAR%% "          = %VAR%
ECHO+
ECHO " %%VAR:~4,7%% "     = %VAR:~4,7%
ECHO+
ECHO " ^!Var:~%%2,%%3^! "   = !Var:~%2,%3!
ECHO+
Goto :EOF










leogtz

El tema se trata en un tema en esta misma sección.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com