星期三, 7月 29, 2009

PowerShell 自動刪除過期檔案

1. Powershell 指令
取得檔案最後寫入日期 > 天
Get-ChildItem e:\temp | Select-Object Name, @{Name="Age";Expression={ (((Get-Date) -
$_.LastWriteTime).Days) }}

2. 自動刪除過期檔案(設定檔案最後寫入日期 > 7天就刪除) Powershell 指令內容
將以下指令存成 .ps1 檔案,例如:e:\del-expired.ps1
---------------------------------------------------------
$a = Get-ChildItem e:\temp
foreach($x in $a)
{
$y = ((Get-Date) - $x.LastWriteTime).Days
if ($y -gt 6 -and $x.PsISContainer -ne $True)
{$x.Delete()}
}
---------------------------------------------------------

3.
基於安全的理由,記得用以下的指令調整安全設定:
Set-ExecutionPolicy RemoteSigned

排定的工作
執行:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe e:\del-expired.ps1
開始位置:
C:\WINDOWS\system32\WindowsPowerShell\v1.0