我们来看一个简单的示例,清除系统中的临时文件夹。

function Clear-TempFile {
    Remove-Item  "C:\Users\*\Appdata\Local\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item "$env:windir\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
}

一个简单的,无参数的包装函数。递归删除C盘中的两个临时文件夹,有错误无法删除的时候跳过。 我们对文件做一些设置,如果您了解了Powershell的模块,并且知道了自动加载的配置。您可以略过这一段。

模块路径.png

$env:PSModulePath -split ";"

New-Item -Type Directory -Path C:\Users\<你的用户名>\Documents\WindowsPowerShell\Modules\Tools -Force

@'function Clear-TempFile {
    Remove-Item  "C:\Users\*\Appdata\Local\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item "$env:windir\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
}'@ > C:\Users\<你的用户名>\Documents\WindowsPowerShell\Modules\Tools\Tools.psm1

请确保您把<>中的内容替换成您自己的用户名 这样您就在powershell中创建了第一个cmdlet,请确保您的路径是正确的。 在powershell中输入'clear-temp' 按下tab键,应该会自动补全命令。

好了,准备工作完毕我们进入正题。

$trigger = New-JobTrigger -Weekly -DaysOfWeek 5 -At 10AM -WeeksInterval 4
Register-ScheduledJob -ScriptBlock {Clear-TempFile} -Trigger $trigger 

第一行创建了一个触发器,每周5的上午10点,中间间隔4周,清理一次系统的临时文件。 如您所见,一切就是这么的简单,但是非常有用。

关于更多的触发,和更多的细节请参考微软的文档。 触发器文档 创建计划作业文档