PowerShell 不只是命令行工具,更是一个强大的自动化脚本平台。本篇将深入讲解 PowerShell 脚本编写技巧,涵盖变量处理、流程控制、函数封装、模块调用及实战脚本案例,帮助你高效完成自动化任务。
一、基础语法
1. 定义变量
$name = "Admin"
$port = 8080
2. 输出内容
Write-Host "用户名为:$name"
二、流程控制进阶
1. 条件判断
if ($port -eq 8080) {
Write-Host "端口正确"
} else {
Write-Host "端口异常"
}
2. 循环结构
for ($i = 1; $i -le 5; $i++) {
Write-Host "执行第 $i 次任务"
}
3. foreach 遍历数组
$servers = @("192.168.1.10", "192.168.1.20")
foreach ($server in $servers) {
Write-Host "正在连接:$server"
}
三、函数与模块封装
1. 自定义函数
function Get-ServerTime {
param([string]$ServerIP)
Invoke-Command -ComputerName $ServerIP -ScriptBlock { Get-Date }
}
2. 引入模块
Import-Module PSReadLine
四、实战案例脚本
案例1:批量检测主机在线状态
$hosts = Get-Content "C:\hostlist.txt"
foreach ($ip in $hosts) {
if (Test-Connection -ComputerName $ip -Count 2 -Quiet) {
Write-Host "$ip 在线" -ForegroundColor Green
} else {
Write-Host "$ip 离线" -ForegroundColor Red
}
}
案例2:自动备份指定目录
$src = "C:\MyData"
$dst = "D:\Backup\$(Get-Date -Format yyyyMMdd_HHmmss)"
Copy-Item -Path $src -Destination $dst -Recurse
五、调试与优化技巧
- 使用 Write-Debug 调试信息
- 使用 Set-PSDebug -Trace 1 启动脚本逐行追踪
- 使用 Measure-Command 分析执行耗时
六、自动化执行与计划任务
步骤:
- 将脚本保存为 .ps1 文件,例如:AutoBackup.ps1
- 使用 Windows 任务计划程序添加计划任务,设置触发时间
- 执行命令设置执行策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
总结
PowerShell 脚本不仅能简化重复操作,还能打造你自己的自动化工具。掌握函数、模块与流程控制后,就能快速构建高效的脚本项目,适用于日常运维、系统管理和批量处理。