用 PowerShell 在 Windows 上自动化任务
手动做一次的事没关系;每周都要手动做的事,就把它自动化。
PowerShell 是认真自动化 Windows 的方式:它处理的是对象,而不是文本,这让它在系统管理方面非常强大。
第一个实用脚本
清理超过 7 天的临时文件:
Get-ChildItem $env:TEMP -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force -ErrorAction SilentlyContinue
为什么是对象而不是文本
在 Unix 上,你用 grep/awk 把文本串联起来。在 PowerShell 中,你通过管道传递的是对象,因此你可以按真实属性(LastWriteTime、Length……)进行过滤,而无需解析脆弱的字符串。
投入生产环境
- 用 Task Scheduler 来调度脚本。
- 记录它所做的操作。
- 为你的脚本签名,并调整 Execution Policy,而不是把它整个禁用。
自动化不仅仅是节省时间:它能让任务每次都以相同的方式运行,不会有任何遗漏。
#powershell#windows#自动化