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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  asignar ruta a variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: asignar ruta a variable  (Leído 3,407 veces)
nniki999

Desconectado Desconectado

Mensajes: 5


Ver Perfil
asignar ruta a variable
« en: 16 Enero 2016, 15:43 pm »

Buenas tardes,

estoy intentando hacer lo siguiente: buscar si existe un archivo que comience por "abcd" en una ruta determinada, y si existe, asignar la ruta a una variable.

Encontrar el archivo ya lo logro hacer, y logro también escribir la ruta en un archivo:

Código:
 dir /a/b/s "D:\directorio\subdirectorio" | find /I "abcd" >>log.txt

Pero lo de asignarlo a a una variable (por ejemplo ruta).... no lo consigo! Tengo algunos intentos, seguramente con sintaxis de otros lenguajes...:

Código:
set ruta
dir /a/b/s "D:\directorio\subdirectorio" | find /I "abcd" >%_ruta%

o

set ruta = dir /a/b/s "D:\directorio\subdirectorios" | find /I "abcd"

Todas las ideas seran muy agradecidas!

Saludos


« Última modificación: 16 Enero 2016, 19:37 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: asignar ruta a variable
« Respuesta #1 en: 16 Enero 2016, 19:37 pm »

Citar
Código:
set ruta = dir /a/b/s "D:\directorio\subdirectorios" | find /I "abcd" 

Batch es un lenguaje muy limitado, en el cual no puedes asignar directamente la salida o retorno de un comando a una variable.

Lo que puedes hacer, es utilizar un For /F de la siguiente manera:

Código
  1. @Echo OFF
  2.  
  3. Set "fullPath="
  4.  
  5. For /F "Delims=" %%# In (
  6. 'Dir /A /B /S "X:\" ^| Find /I "..."'
  7. ) Do (
  8. Set "fullPath=%%~f#"
  9. Break
  10. )
  11.  
  12. Echo "%fullPath%"
  13.  
  14. Pause&Exit /B 0

Saludos


En línea



nniki999

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asignar ruta a variable
« Respuesta #2 en: 16 Enero 2016, 21:16 pm »

muchas gracias! solucionado!

y si.... quisiera utilizar la variable fullpath para copiar un archivo, pero la ruta que contiene tiene un directorio de más de 8 carácteres? Tendría que editar la variable para poner las comillas (para evitar el mensaje "el sistema no puede encontrar el archivo"? O hay algún truco para que pueda leer los directorios de nombre largo sin problemas?

Gracias de nuevo!

(debo abrir un tema nuevo?)
« Última modificación: 16 Enero 2016, 21:51 pm por nniki999 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: asignar ruta a variable
« Respuesta #3 en: 17 Enero 2016, 05:09 am »

y si.... quisiera utilizar la variable fullpath para copiar un archivo, pero la ruta que contiene tiene un directorio de más de 8 carácteres? Tendría que editar la variable para poner las comillas (para evitar el mensaje "el sistema no puede encontrar el archivo"? O hay algún truco para que pueda leer los directorios de nombre largo sin problemas?

¿De donde sacas esa idea?, quiero decir, por defecto en la CMD y la variable de FOR se asigna y se utilizan los nombres largos en lugar de los nombres cortos o DOSNAME 8.3.

¿Qué S.O. estás utilizando, DOS, o Windows? ...¿y qué versión?.

¿Te has asegurado que el problema realmente trata de un nombre corto, utilizando el comando Echo para comprobarlo?:
Código
  1. Echo %var%

Si estás utilizando un código adaptado y con mayores diferencias del que te mostré, publícalo aquí para poder examinarlo.

Sin saber las respuestas a las preguntas que te hice, yo creo que el motivo de que no te reconozca el directorio debe ser por que la ruta incluye espacios en blanco pero no has encerrado la variable en comillas dobles para que esos espacios en blanco formen parte del mismo String. Eso se arreglaría declarando la variable con las comillas:

Código
  1. Set "var=ruta"




(debo abrir un tema nuevo?)

No es necesario, pero gracias por tomarte la molestia de intentar hacer las cosas bien, no es algo que se suela ver xD.

Saludos
« Última modificación: 17 Enero 2016, 05:15 am por Eleкtro » En línea



nniki999

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: asignar ruta a variable
« Respuesta #4 en: 17 Enero 2016, 14:57 pm »

Efectivamente, unos de los directorios tiene un espacio en blanco! No hay nada como saber (y tomarse la molestia)
Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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