Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: gorgon12 en 6 Agosto 2009, 19:12 pm



Título: Extraer nombre y extension de archivo en Batch[Solucionado]
Publicado por: gorgon12 en 6 Agosto 2009, 19:12 pm
Bueno chavos, pues precisamente eso...

El asunto es que tengo una ruta alojada en una variable, mi duda es: ¿como puedo extraer "solamente" el nombre y extensión del archivo de la cadena entera para posteriormente alojar solo esa información en otra variable?

No se si alguno de uds tenga alguna solución... de antemano les agradezco

Saludos.


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: Ari Slash en 6 Agosto 2009, 19:15 pm

la ruta obviamente sera la que cambiara
pero el nombre de archivo es constante o puede ser cualkier archivo?


salu2


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: gorgon12 en 6 Agosto 2009, 19:21 pm
Tal vez no me expresé muy bien...

en mi .bat tengo una linea:
 
set /p ruta=Ingrese Aqui La Ruta del Archivo

si yo agrego un echo %ruta% saldrá una linea parecida a la siguiente:

C:\Documents and Settings\Usuario\Mis Documentos\Archivo.xxx

Pero yo no necesito toda esa información, solo deseo el nombre y extensión de archivo.

El archivo no lo conozco por anticipado puesto q la variable es una petición al usuario.

Saludos


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: leogtz en 6 Agosto 2009, 19:36 pm
Primera forma:
Código
  1. @echo off
  2. :code
  3. set /p "ruta=Ingrese aqui la ruta del archivo : "
  4. if not defined ruta (goto:code)
  5. call:_view %ruta%
  6. goto:eof
  7. :_view
  8. echo %~nx1
  9. goto:eof

Salida:
Código:
Ingrese aqui la ruta del archivo : c:\windows\system32\msg.exe
msg.exe

Segunda forma:

Código
  1. @echo off
  2. :code
  3. set /p "ruta=Ingrese aqui la ruta del archivo : "
  4. if not defined ruta (goto:code)
  5. for %%_ in ("%ruta%") do (
  6. echo %%~nx_
  7. )
  8. goto:eof


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: Ari Slash en 6 Agosto 2009, 19:42 pm
como te quedo el ojo?

te presento al maestro Leo gutierrez
 :xD



Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: gorgon12 en 6 Agosto 2009, 19:58 pm
Gracias Leo, funciona a la prefección, usar el comando call con la ruta como parametro no se me habia ocurrido.

Por tanto si quisiera el resultado en una variable siguiendo como ejemplo tu código se podria hacer:

Código:
@echo off
:code
set /p "ruta=Ingrese aqui la ruta del archivo : "
if not defined ruta (goto:code)
call:_view %ruta%
goto:eof
:_view
set name=%~nx1
goto:eof

y usar esa información cuando quiera.... ahora, ¿es posible crear la variable sin la necesidad de "call"?
Me refiero a si puedes especificar la ruta como parámetro directamente en el modificador %~nx1

Saludos y Gracias excelente solucion.

P.D. ¿como haces lo de los colores  :P puse algunos pero no se tradujeron las etiquetas


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: leogtz en 6 Agosto 2009, 20:27 pm
Si se puede, usa el FOR:
Código
  1. @echo off
  2. :code
  3. set /p "ruta=Ingrese aqui la ruta del archivo : "
  4. if not defined ruta (goto:code)
  5. for %%_ in ("%ruta%") do (set "mi_file= %%~nx_")
  6. echo : %mi_file%
  7. pause>nul
  8. goto:eof

Para los colores usa el GeSHi del foro, y selecciona DOS.

Saludos.


Título: Re: Extraer nombre y extension de archivo en Batch
Publicado por: gorgon12 en 6 Agosto 2009, 20:45 pm
De acuerdo leo...duda resuelta

hasta la proxima (pregunta)

Gracias, Saludos.