sábado, 4 de abril de 2015

PowerShell: Limpiar temporales

Ejecutar

Borrar archivos temporales desde la Powershell:
PS C:\Users\Roy> Get-ChildItem -Recurse -Filter *.tmp | Remove-Item -Force
Si solo queremos los temporales generados por MS Word:
PS C:\Users\Roy> Get-ChildItem -Recurse -Filter ~WR*.tmp | Remove-Item -Force
Por supuesto que el borrado es sobre el directorio C:\Users\Roy.

Si quisiéramos un directorio cualquiera lo podemos especificar mediante el parámetro -Path.
PS C:\Users\Roy> Get-ChildItem -Path C:\Users\Roy\Documents
Os recuerdo que para escribir el símbolo virgulilla (también conocido como la "ola") se realiza mediante la combinación de teclas: Alt + 126.

Explicación

Se trata de la combinación de dos cmdlets (comandos de powershell) a través de una "tubería" (ya se que alguno hubiese preferido que dijese "pipeline", pero no... para mi la "barbacoa" es una "parrillada").

El primero Get-ChildItem devuelve los archivos de un directorio.

Mediante el parámetro -Recurse hacemos que recorra también los subdirectorios.
Y mediante -Filter filtramos los archivos que queremos que nos devuelva. Ni comento lo que hace el asterisco.

Recogemos la salida del primer comando y se lo pasamos al segundo que hace un borrado. Mediante el parámetro -Force borramos los archivos de solo lectura o los ocultos (como es nuestro caso con los temporales).

Bibliografía

Remove-Item: https://technet.microsoft.com/en-us/library/hh849765.aspx

Get-ChildItem: https://technet.microsoft.com/en-us/library/hh849800.aspx