返回顶部
P

PowerShellPowerShell避坑指南

Avoid common PowerShell mistakes — output behavior, array traps, and comparison operator gotchas.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,674
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

PowerShell

输出行为

  • - 所有未被捕获的内容都会输出——即使没有使用 return 或 Write-Output
  • return 不会阻止输出——之前未捕获的表达式仍会输出
  • Write-Host 绕过管道——仅用于显示,不用于数据传递
  • 赋值给 $null 可抑制输出——$null = SomeFunction
  • [void] 强制转换也可抑制输出——void

数组陷阱

  • - 单个结果返回标量而非数组——@(Get-Item .) 强制转换为数组
  • 空结果返回 $null 而非空数组——使用 if ($result) 时需谨慎检查
  • 管道中的数组展开——@(1,2,3) | ForEach 会逐个发送元素
  • 对数组使用 += 会创建新数组——循环中效率低,建议使用 [System.Collections.ArrayList]
  • , 是数组运算符——,$item 将单个元素包装为数组

比较运算符

  • - 使用 -eq、-ne、-gt、-lt——而非 ==、!=、>、<
  • -like 支持通配符,-match 支持正则表达式——两者均返回布尔值
  • -contains 用于检查数组成员——$arr -contains $item,而非 $item -in $arr(虽然 -in 也可用)
  • 默认不区分大小写——使用 -ceq、-cmatch 进行区分大小写比较
  • 将 $null 放在左侧——$null -eq $var 可避免数组比较问题

字符串处理

  • - 双引号支持变量插值——Hello $name 会展开变量
  • 单引号表示字面量——$name 保持为纯文本
  • 子表达式用于复杂情况——Count: $($arr.Count) 用于属性和方法
  • 此处字符串用于多行文本——@ ... @ 或 @ ... @
  • 反引号用于转义—— n 表示换行, t 表示制表符

管道

  • - $ 或 $PSItem 表示当前对象——两者相同,$ 更常用
  • ForEach-Object 用于管道——foreach 语句不接受管道输入
  • -PipelineVariable 保存中间结果——Get-Service -PV svc | Where ...
  • 管道逐个处理对象——除非函数不支持流式处理

错误处理

  • - $ErrorActionPreference 设置默认行为——Stop、Continue、SilentlyContinue
  • 每个命令使用 -ErrorAction Stop——将非终止错误转为终止错误
  • try/catch 仅捕获终止错误——需先设置 ErrorAction Stop
  • $? 表示上一条命令是否成功——$LASTEXITCODE 用于原生命令

常见错误

  • - if 中 { 前缺少空格——if($x){ 可行但推荐 if ($x) {
  • 条件中使用 = 进行赋值——应使用 -eq 进行比较
  • 函数返回数组时自动展开——使用 return ,@($arr) 保持数组结构
  • Get-Content 返回行数组——使用 -Raw 参数获取单个字符串
  • Select-Object 创建新对象——属性是副本而非引用

跨平台

  • - pwsh 是 PowerShell 7+——powershell 是 Windows PowerShell 5.1
  • 路径使用 / 或 \——使用 Join-Path 实现可移植性
  • 环境变量:$env:VAR——适用于所有平台
  • 别名因平台而异——ls、cat 可能不存在,建议使用完整 cmdlet 名称

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 powershell-1776328943 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 powershell-1776328943 技能

通过命令行安装

skillhub install powershell-1776328943

下载

⬇ 下载 PowerShell v1.0.0(免费)

文件大小: 2.11 KB | 发布时间: 2026-4-17 15:13

v1.0.0 最新 2026-4-17 15:13
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部