SuperAPI AI 工具集

powershell-windows

部署与运维

查看项目

更新于 10-16 06:15

技能介绍

用途:整理 Windows PowerShell 脚本编写中的关键模式与易错点,供编写、审查或排查脚本时参考。

主要能力与要点:

  1. 运算符语法:使用逻辑运算符时,每个 cmdlet 调用必须加括号,例如 if ((Test-Path "a") -or (Test-Path "b"));否则会报参数 'or' 相关错误。
  2. 字符限制:脚本中只用 ASCII,不用 Unicode 或 emoji。成功可用 [OK] [+],错误用 [!] [X],警告用 [*] [WARN],信息用 [i] [INFO],进度用 [...]。
  3. 空值检查:访问前先判空,如 $array -and $array.Count -gt 0;文本用 if ($text) { $text.Length }。否则出现 Cannot find property。
  4. 字符串插值:复杂表达式先存入变量再输出,例如 $value = $obj.prop.sub 后 Write-Output "Value: $value"。
  5. 错误处理:$ErrorActionPreference 可选 Stop(开发快速失败)、Continue(生产脚本)、SilentlyContinue(预期错误)。Try/Catch 中不要在 try 内 return,finally 做清理,try/catch 之后再返回。
  6. 文件路径:字面路径如 C:\Users\User\file.txt;变量路径用 Join-Path $env:USERPROFILE "file.txt";相对路径用 Join-Path $ScriptDir "data"。建议用 Join-Path 保证安全。
  7. 数组:空数组 $array = @(),添加 $array += $item。
  8. JSON:ConvertTo-Json 必须指定 -Depth,如 ConvertTo-Json -Depth 10,以处理嵌套对象。读取用 Get-Content "file.json" -Raw。
  9. 常见错误:'parameter or' 多为缺少括号;Unexpected token 多为 Unicode 字符;Cannot find property 多为空对象;Cannot convert 多为类型不匹配,可用 .ToString()。
  10. 脚本模板:Set-StrictMode -Version Latest、$ErrorActionPreference = "Continue",用 $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path 取脚本目录,主逻辑置于 try 内,成功 Write-Output "[OK] Done" 并 exit 0,catch 中 Write-Warning "Error: $_" 并 exit 1。

使用方式:可作为脚本编写规范或检查清单,逐条对照修正。命令保持原样。

适用场景:Windows 平台 PowerShell 脚本开发、错误排查与代码审查。

限制:以上为模式与陷阱说明,不含安装步骤、版本要求、平台兼容范围或性能数据,这些内容暂未提供。