CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
PowerShell 入门/课时/脚本与函数
RawBlame
课时目录12 节

PowerShell 入门

  1. 01PowerShell 是什么
  2. 02Cmdlet 基础
  3. 03管道与对象
  4. 04变量与类型
  5. 05脚本与函数
  6. 06文件与路径
  7. 07远程与会话
  8. 08PowerShell vs Bash
  9. 09Windows 部署 CodeRoadMap
  10. 10GitHub Actions Windows
  11. 11Windows 容器简介
  12. 12综合练习

脚本与函数

.ps1、param、execution policy。

35 分钟

脚本与函数

.ps1 是 PowerShell 脚本文件;param() 块声明参数,function 封装可复用逻辑。本站 deploy\scripts\sync-courses.ps1 是标准范例:参数化、错误处理、try/finally。

学习目标

  • 编写带 param() 的 .ps1 脚本
  • 理解执行策略(Execution Policy)
  • 掌握 $ErrorActionPreference 与 try/catch/finally

核心内容

最小脚本

# check-health.ps1
param(
  [string]$ApiBase = "http://127.0.0.1:8080"
)

$ErrorActionPreference = "Stop"
Invoke-RestMethod "$ApiBase/actuator/health"
Write-Host "[OK] backend healthy"

运行:.\check-health.ps1 或 .\check-health.ps1 -ApiBase "http://localhost:8080"。

执行策略

Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Restricted 阻止本地脚本;开发机常用 RemoteSigned(本地脚本可跑,下载的需签名)。GHA runner 默认较宽松(见 ps-gha)。

对照 sync-courses.ps1

param(
  [string]$ApiBase = "http://127.0.0.1:8080",
  [switch]$DryRun,
  [switch]$SkipImport
)

$Root = Resolve-Path (Join-Path $PSScriptRoot "..\..")
Push-Location $Root
try {
  $env:API_BASE = $ApiBase
  node scripts/import-all-courses.mjs
  if ($LASTEXITCODE -ne 0) { throw "import failed" }
} finally {
  Pop-Location
  Remove-Item Env:API_BASE -ErrorAction SilentlyContinue
}

要点:$PSScriptRoot 定位脚本目录;$LASTEXITCODE 检查外部命令(node/npm);finally 保证清理环境变量。

函数

function Test-PortListening { param([int]$Port)
  [bool](Get-NetTCPConnection -LocalPort $Port -State Listen -EA SilentlyContinue)
}

函数名用 Verb-Noun;输出即返回值。

练习

  • 写 check-health.ps1,接受 -ApiBase 参数
  • 查看当前 ExecutionPolicy,必要时设为 RemoteSigned
  • 阅读 的 与 块
sync-courses.ps1
param
finally

小结

.ps1 + param + ErrorAction + try/finally,是可靠运维脚本的骨架。 下一课文件与路径。

加载本节练习…
← 上一课变量与类型下一课 →文件与路径