Foros | Webinarios | Blogs
 

Obtención de fecha y hora de un archivo en Windows XP

Seguir
Estimados colegas:

Estoy confeccionando un script (un .BAT) basado en los comandos de la línea de comandos de Windows XP.

Preciso saber si existe alguna forma (mediante la misma línea de comandos o mediante algún programa freeware que se pueda utilizar aquí para poder obtener desde el script, los datos de fecha y hora de modificación de un determinado archivo.

Acudo a vuestra ayuda después de mucho buscar y de pegarme la cabeza contra la pared...

Mucho agradeceré a quienes puedan aportame alguna solución o algún dato que me pueda servir y desde ya, muchas gracias a todos por tomarse tiempo en leer este post.

Saludos!


10 Soluciones propuestas

MIra, este programa lo hice yo:
http://mx.geocities.com/jcarlostorresa/codigos/SisDis.zip

Ahi se leen y modifican las propiedades de archivos y carpetas, esta hecho en VB... y te comento que fue necesario usar una API de windows wink
Estimado Carlitoszihua:

En primer lugar gracias por tu buen gesto de asisitirme. Lamentablemente tengo que informarte que cuando intento acceder al link que especificaste, la página se redirecciona a ésta otra: http://mx.share.geocities.com/jcarlostorresa/codigos/SisDis.zip y en ella se informa que le página solicitada ya no está disponible.

Saludos y nuevamente gracias.
Al hacer clic sobre el enlace que pase te deberia mandar a descargar un archivo Zip con codigo fuente.... esta raro.
disculpen que me meta, pero lo pude bajar dandole con el click derecho y eligiendo guardar destino como.
saludos
Tambien asi se puede... no se por que le da error... rolleyes
no estoy muy seguro como quieres obtener la informacion, pero la forma mas fasil de obtener las fechas y hora de un archivo cualquiera es con el comando DIR

En esta URL puede obtener informacion del comando DIR
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/es/library/ServerHelp/a6aaf662-4153-4f8c-873e-58d91aedc1ea.mspx?mfr=true

El comando se usa asi:

Para obtener la fecha y hora de CREACION
Dir [direccion del archivo] /t:c

Para obtener la fecha y hora del ULTIMO ACCESO
Dir [direccion del archivo] /t:a

Para obtener la fecha y hora de la ULTIMA ESCRITURA
Dir [direccion del archivo] /t:w

En un archivo por lote podrias hacer algo asi:
[code:1]@echo off
set /p camino=Direccion del archivo?
rem fecha y hora de creacion
dir %camino% /t:c
rem fecha y hora del ultimo acceso
dir %camino% /t:a
rem fecha y hora de la ultima escritura
dir %camino% /t:w
pause[/code:1]

NOTA: Lo que podrias hacer es buscar la manera de borrar el texto que sobra y mostrar unicamente la fecha y hora!!!

Espero que esto te sirva.

Saludos
MadeInChina
Estimados:

Como corresponde a alguien que solicita la ayuda de sus colegas, quiero de antemano agradecerles a todos por tomarse su tiempo en brindarme sus ideas, aportes y sugerencias.

Con relación al tema que nos ocupa, y para clarificar el sentido de mi consulta, pasaré seguidamente a ampliarla.

El archivo .BAT en el que estoy trabajando, en determinado momento necesita comparar los datos de fecha y hora de un archivo utilizado como "flag" o "bandera" con otro archivo cuyo nombre y extensión es exactamente igual a éste, pero ubicado en otra parte (en mi caso, en una unidad de disco remota). El resultado de esta comparación, determinará la acción condicional pertinente. Mi idea al menos (toda sugerencia es bienvenida!!), es obtener los datos pertinentes desde cada archivo y guardarlos temporalmente en variables de entorno dentro del .BAT para luego realizar la comparación mencionada.

Es por tal motivo que el programa diseñado y aportado por Calitoszihua, no aplica en mi caso (gracias de todos modos y gracias también a Torresdelamora por su observación). Por otra parte, en lo aportado por Madeinchina, la información queda en la pantalla y si bien se puede redirigir el comando para que el resultado se escriba en un archivo, no conozco la forma de leer los datos que necesito, desde el mismo.


Espero haber clarificado el sentido de mi consulta y a partir de ello si alguno puede aportarme sus sugerencias o su parecer, le estaré agradecido.

Saludos!
Talves esto te sirva:

IF [NOT] string1==string2 comando

Existen mas comandos que puede usar en este enlace:
http://www.ignside.net/man/dos/batch.php
SOLUCIÓN ACEPTADA
mira, podrias hacer lo siguiente:

Extraido del foro elhacker.net
[code:1]@echo off
set dia=00
set mes=00
set anio=00
set /p camino=Direccion del archivo?
dir %camino% /t:c >> fecha.txt
::dia
find "01/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=01
find "02/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=02
find "03/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=03
find "04/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=04
find "05/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=05
find "06/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=06
find "07/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=07
find "08/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=08
find "09/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=09
find "10/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=10
find "11/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=11
find "12/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=12
find "13/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=13
find "14/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=14
find "15/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=15
find "16/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=16
find "17/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=17
find "18/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=18
find "19/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=19
find "20/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=20
find "21/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=21
find "22/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=22
find "23/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=23
find "24/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=24
find "25/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=25
find "26/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=26
find "27/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=27
find "28/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=28
find "29/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=29
find "30/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=30
find "31/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set dia=31
::mes
find "/01/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=01
find "/02/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=02
find "/03/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=03
find "/04/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=04
find "/05/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=05
find "/06/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=06
find "/07/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=07
find "/08/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=08
find "/09/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=09
find "/10/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=10
find "/11/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=11
find "/12/" <fecha.txt
if errorlevel 0 if not errorlevel 1 set mes=12
:año
find "2004" <fecha.txt
if errorlevel 0 if not errorlevel 1 set anio=04
find "2005" <fecha.txt
if errorlevel 0 if not errorlevel 1 set anio=05
find "2006" <fecha.txt
if errorlevel 0 if not errorlevel 1 set anio=06
find "2007" <fecha.txt
if errorlevel 0 if not errorlevel 1 set anio=07
cls
del fecha.txt
echo Archivo con fecha %dia%/%mes%/20%anio%
pause[/code:1]

Este codigo se podria mejorar... te lo paso asi, para que veas como obtener la fecha "en este caso" de un archivo... almacenando la data en un txt.

Fijate, talvez te sirva de algo.

Saludos
MadeInChina
Estmado Madeinchina:

Tu último aporte aplica perfectamente a mi caso. Si bien tengo que adaptar el código específico al script que me ocupa, el ejemplo que detallaste me ha sido de utilidad conceptual.

No me queda más que agradecerte, como asi también agradecerles nuevamente a todos quienes en estos días me han aportado sus conocimientos y sugerencias.

Saludos!