从命令行到自动化:手把手教你用PowerShell ISE/VSCode编写第一个.ps1脚本(含执行策略避坑指南)

从命令行到自动化:PowerShell脚本编写实战指南

第一次打开PowerShell时,那个闪烁的光标仿佛在嘲笑我的无知。记得三年前接手一个服务器迁移项目,需要批量修改上千个文件的权限。当我发现同事用5行PowerShell脚本完成了我需要三天手工操作的工作时,那种震撼至今难忘。这就是PowerShell的魅力——将重复劳动转化为优雅的自动化。

1. 环境准备:选择你的武器

1.1 PowerShell ISE vs VSCode

工欲善其事,必先利其器。Windows自带的PowerShell ISE和跨平台的VSCode是两大主流选择:

特性 PowerShell ISE VSCode + PowerShell扩展
启动速度 中等
调试功能 基础 强大
扩展性 有限 丰富
跨平台支持 仅Windows 全平台
智能提示 基础 高级

提示:新手可以从ISE开始熟悉基本概念,当需要复杂项目开发时再切换到VSCode

1.2 基础配置检查

在开始编写脚本前,先确认你的环境状态:

# 查看PowerShell版本
$PSVersionTable.PSVersion

# 检查已安装模块
Get-Module -ListAvailable

# 验证执行策略
Get-ExecutionPolicy

典型输出结果:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  1320

2. 你的第一个实用脚本

2.1 从需求出发:日志清理自动化

假设我们需要定期清理超过30天的日志文件,手动操作既耗时又容易出错。下面是一个完整的解决方案:

# LogCleaner.ps1
param (
    [string]$logPath = "C:\Logs",
    [int]$daysToKeep = 30
)

$cutoffDate = (Get-Date).AddDays(-$daysToKeep)
$files = Get-ChildItem -Path $logPath -File -Recurse | Where-Object { $_.LastWriteTime -lt $cutoffDate }

if ($files.Count -gt 0) {
    $files | Remove-Item -Force -Verbose
    Write-Output "已清理 $($files.Count) 个过期日志文件"
} else {
    Write-Output "未找到需要清理的日志文件"
}

2.2 脚本结构解析

一个规范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值