El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

PowerShell – Borrar El Fichero Más Antiguo De Un Conjunto Que Cumple Un Patrón

Posted by urpiano en Miércoles 7 \07\UTC enero \07\UTC 2009

Si deseamos borrar el fichero más antiguo de una serie que cumple un patrón (por ejemplo, los ficheros de backup de MySQL que se almacenan en una carpeta), podemos hacerlo con un mini script de PowerShell como éste (aunque se vean saltos de línea, provocados por limitaciones a la hora de mostrar código por WordPress, en realidad se trata de una sóla línea). La línea que pongo se debe poner en un BAT, para así poder crear una tarea programada que lo ejecute; en el caso de ejecutarse desde el propio powershell, hay que quitar la invocación a powershell y las comillas que encierran el script):

powershell "$a = get-date ; get-childitem -path 'c:\Prueba\Backup Diario * 0400.sql' |
foreach-object {if ($_.CreationTime -lt $a){$b = $_.FullName ; $a = $_.CreationTime}};remove-item $b"

El script powershell lo primero que hace es poner en la variable $a la fecha y hora en el momento que se ejecuta. Después lista los ficheros que cumplan con el patrón “c:\Prueba\Backup Diario * 0400.sql”. Con una tubería (pipeline |) manda los objetos así listados a un bucle foreach-object que los recorre y comprueba si la fecha de creación del fichero es anterior a la almacenada en la variable $a; en caso afirmativo, almacena la fecha de creación en la variable $a y la ruta y nombre del archivo en la variable $b; de esta manera, al terminar de recorrer el bucle, $a almacenará la fecha de creación y $b la ruta y nombre del fichero más antiguo. Por último, el script borra el fichero almacenado en la variable $b, que como vimos es el fichero más antiguo que cumple con el patrón.

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: