Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 01:41 am



Título: Cómo tomar atributos de archivo y mostrarlos con Echo SOLUCIONADO
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 01:41 am
Qué tal compañeros?

Esta vez tengo este problema: necesito tomar los atributos de un archivo para mostrarlos en un mensaje pero no sé cómo hacerlo. Sé que el comando attrib seguido del nombre del archivo me muestra sus atributos, pero necesito tomar ese valor. ¿Sabrá alguno cómo hacerlo? Les estaré muy agradecido.


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: leogtz en 23 Agosto 2009, 01:53 am
Con el comando for, parametro /f.

No tengo un windows hace mucho pero podría ser así:
Código:
for /f "tokens=1" %%_ in ('attrib "archivo.ext"') do (
echo Atributo de mi archivo: %%_
)
%%_ lo puedes asignar a una variable dentro del mismo bucle.

Saludos.


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 02:52 am
Gracias Leo por responder. Acabo de probar tu sugerencia y efectivamente funciona, pero nada más me muestra el atributo A, y resulta que tambien esta Oculto (H) y es de Sistema (S). Cuando uso attrib archivo.ext sale

Código:
A  SH            c:\archivo.ext

Leí por ahí que el atributo A lo tienen todos los archivos, de modo que que me interesan los otros (SHR).

¿Será que hay otra manera de verlos?


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 02:59 am
Acabo de notar cómo hacerlo. No domino aun el For pero recordé algo de uno que tengo por ahí y lo apliqué y funcionó. Le cambié el 1 de tokens por 2-3; quedó así:
Código:
for /f "tokens=2-3" %%_ in ('attrib "archivo.ext"') do (
echo Atributo de mi archivo: %%_
)
Así me toma nada más los valores que quiero.


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: leogtz en 23 Agosto 2009, 03:41 am
Bien hecho.

Para poner códigos, usa la etiqueta (http://foro.elhacker.net/Themes/converted/images/bbc/code.gif)


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 03:53 am
Ok disculpa!

Ahora tengo otro problema. La modificación que acabo de hacer funciona solo cuando los atributos son SHR o SH, porque cuando es S R solo me toma la primera letra (S). Supongo que el espacio en blanco es el responsable.

Ya intenté con tokens=2-4 y tokens=2-5, y otros más, pero no funciona. Creo que mi problema es que no sé bien cómo funciona el tokens. ¿Puedo usarlo para tomar sólo las posiciones 2 3 y 4? ¿Cómo haría eso?


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: leogtz en 23 Agosto 2009, 04:14 am
Código
  1. for /f "tokens=2,3,4" %%a in ('attrib "archivo.ext"') do (
  2. echo Atributos :  %%a %%b %%c
  3. )


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 05:20 am
Amigo, acabo de toparme con otro problema que de verdad no entiendo. El ciclo For me sirvió bien al usarlo en un .bat sólo, pero ahora lo integré al que me interesa y en vez de mostrarme los atributos del archivo, lo ejecuta. Usé el mismo código:

Código:
set variable=c:\archivo.txt

for /f "tokens=2" %%_ in ('%variable%') do (
        set atr=%%_
        echo Atributo: %atr%
        pause
)

Como ves, lo único que cambié fue que no coloqué el nombre del archivo directamente en el For, sino la variable que previamente tenía almacenado ese valor.

No entiendo por qué me abre el archivo en vez de mostrarme el atributo. ¿Tienes alguna idea?


Título: Re: Cómo tomar atributos de archivo y mostrarlos con Echo
Publicado por: <ИΘZIЭ(ŦB> en 23 Agosto 2009, 05:50 am
Listo! Cometí un error. Por eso no funcionó. Tal vez lo notaste, me había faltado escribir attrib en la sentencia. Ya lo solucioné. Gracias!