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.
la ruta obviamente sera la que cambiara
pero el nombre de archivo es constante o puede ser cualkier archivo?
salu2
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
Primera forma:
@echo off
:code
set /p "ruta=Ingrese aqui la ruta del archivo : "
if not defined ruta (goto:code)
call:_view %ruta%
goto:eof
:_view
echo %~nx1
goto:eof
Salida:
Ingrese aqui la ruta del archivo : c:\windows\system32\msg.exe
msg.exe
Segunda forma:
@echo off
:code
set /p "ruta=Ingrese aqui la ruta del archivo : "
if not defined ruta (goto:code)
for %%_ in ("%ruta%") do (
echo %%~nx_
)
pause
goto:eof
como te quedo el ojo?
te presento al maestro Leo gutierrez
:xD
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:
@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
Si se puede, usa el FOR:
@echo off
:code
set /p "ruta=Ingrese aqui la ruta del archivo : "
if not defined ruta (goto:code)
for %%_ in ("%ruta%") do (set "mi_file= %%~nx_")
echo : %mi_file%
pause>nul
goto:eof
Para los colores usa el GeSHi del foro, y selecciona DOS.
Saludos.
De acuerdo leo...duda resuelta
hasta la proxima (pregunta)
Gracias, Saludos.