# 🖥️ B17｜用 AI 写出你的第一条 PowerShell 命令 — 配套资产

> **系列**：AI 办公实战：从小白到达人
> **文章号**：B17（Track 3 自动化 / Level 1 基础篇）
> **配套中文标题**：用 AI 写出你的第一条 PowerShell 命令
> **配套英文标题**：Your First PowerShell Command, with AI

---

## 一、这是给谁的？解决什么问题？

写给**一看到黑框就手心出汗**的朋友：不会写命令、不敢按回车、报错红字一大堆看不懂。本目录的 5 个 `*.ps1` 脚本就是你的"安全陪练"——每一条都是**只读、零风险**的命令（`Get-Process` / `Get-Service` / `Get-ChildItem` / `Get-Help` / `Get-Command`），外加 1 个**安全红线演示脚本**，告诉你"什么是绝对不能随便跑的"。看完本目录，黑框不再神秘，按回车不再手抖。

主教程 `B17_第一条命令_双语.md` 教你怎么让 AI 当翻译官；本目录是**动手版**——把教程里的每一条命令做成了可以一键运行的 `.ps1`，跑完一遍，你就是"敢打开黑框"的人了。

---

## 二、使用方法（5 步跑通你的第一条命令）

### 第一步：打开 PowerShell

> 💡 Windows 10 / 11 系统自带，**不用装任何东西**。

按 `Win + R` 输入 `powershell` 回车，看到 `PS C:\Users\你的名字>` 这种提示符就对了。**不要**用管理员身份（教程第 3 节会强调）。

### 第二步：跑 5 个"三查法"热身脚本（按 01→05 顺序）

每个 `.ps1` 都是独立文件，单独运行：

```powershell
# 在 PowerShell 里进入本目录
cd "C:\Users\cynix\WorkBuddy\VBA.net\配套资产\B17_第一条命令"

# 跑第一个：看进程
.\01-看进程_zh.ps1
```

按顺序跑完 01–05 五个脚本，你的"肌肉记忆"就建起来了：以后任何 PowerShell 命令，看到都是"动词 Get- / Set- / Remove-"——你就**只用看动词，就能判断 80% 的安全性**。

> 🛡️ 所有 01–05 脚本的安全等级都是 🟢 绿（只读），不会动你的任何文件。

### 第三步：跑安全红线演示（必看！）

```powershell
.\安全红线_demo_zh.ps1
```

这个脚本**演示**但不实际执行任何危险命令（危险命令都已用 Write-Host 输出长相）。它会教你 4 条红线的"安全等价写法"——以后看到 `Set-ExecutionPolicy Unrestricted` / `rm -rf`（PowerShell 版）/ `Format-Volume` / `iex (irm ...)` 这类命令，你**知道该怎么处理**。

### 第四步：自己改参数玩玩

每个 `.ps1` 的注释都写得清清楚楚（中文 + 英文）。比如 `01-看进程_zh.ps1` 里：

```powershell
Get-Process -Name powershell, chrome, excel, winword, wps `
             -ErrorAction SilentlyContinue `
             | Sort-Object -Property WorkingSet64 -Descending `
             | Select-Object -First 5 ...
```

把 `powershell, chrome, excel, winword, wps` 改成你自己的进程名（比如 `qq, wechat, code`），再跑一遍。看懂每一段在干啥，你就开始"会改命令"了。

### 第五步：让 AI 帮你写命令（教程第 4 节完整流程）

教程里的"提示词原文"可以直接复制给 Copilot / ChatGPT，让它给你写一条新命令。AI 给的命令**永远过三查法**：

1. **看动词** —— `Get-` 绿、`Remove-` 红。
2. **查参数** —— `Get-Help <cmd> -Online` 打开官方文档核对。
3. **核路径** —— 别动 `C:\Windows` 这种系统目录。

---

## 三、文件清单

| 文件名 | 类型 | 作用 | 安全等级 |
|--------|------|------|----------|
| `B17_第一条命令_中文README.md` | Markdown | 本文件，中文使用说明 | — |
| `B17_FirstCommand_EnglishREADME.md` | Markdown | 英文版使用说明 | — |
| `01-看进程_zh.ps1` | PowerShell | Get-Process 演示：看进程 | 🟢 绿 |
| `01-看进程_en.ps1` | PowerShell | 英文版 | 🟢 绿 |
| `02-看服务_zh.ps1` | PowerShell | Get-Service 演示：看服务 | 🟢 绿 |
| `02-看服务_en.ps1` | PowerShell | 英文版 | 🟢 绿 |
| `03-列文件_zh.ps1` | PowerShell | Get-ChildItem 演示：列文件 + 排序 | 🟢 绿 |
| `03-列文件_en.ps1` | PowerShell | 英文版 | 🟢 绿 |
| `04-查帮助_zh.ps1` | PowerShell | Get-Help / man / -? / -Online 4 种查帮助姿势 | 🟢 绿 |
| `04-查帮助_en.ps1` | PowerShell | 英文版 | 🟢 绿 |
| `05-找命令_zh.ps1` | PowerShell | Get-Command / Get-Verb 演示：找命令 | 🟢 绿 |
| `05-找命令_en.ps1` | PowerShell | 英文版 | 🟢 绿 |
| `安全红线_demo_zh.ps1` | PowerShell | 4 条红线演示 + 安全等价写法 | 🟡 黄（演示用，未执行危险命令） |
| `安全红线_demo_en.ps1` | PowerShell | 英文版 | 🟡 黄 |

---

## 四、运行 PowerShell 脚本的前提（第一次用要先配置）

PowerShell 默认**不允许直接运行 `.ps1` 文件**（出于安全考虑）。你需要做一次：

```powershell
# 方法 A：用命令行参数 -ExecutionPolicy Bypass 临时绕开（推荐新手）
powershell -ExecutionPolicy Bypass -File ".\01-看进程_zh.ps1"

# 方法 B：一次性给当前用户开权限（更彻底）
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
# 之后就能直接 .\01-看进程_zh.ps1 了
```

> ⚠️ 教程第 3 节明确说**不要用 `Set-ExecutionPolicy Unrestricted`**——那等于把所有脚本的安全锁都关了。`RemoteSigned` 是 Windows 默认安全策略，本地写的脚本能跑、网上下载的需要数字签名。

---

## 五、5 个三查法命令速查表

| # | 命令 | 动词 | 作用 | 一句话示例 |
|---|------|------|------|-----------|
| 01 | `Get-Process` | Get | 看进程 | `Get-Process -Name chrome` |
| 02 | `Get-Service` | Get | 看服务 | `Get-Service \| Group-Object Status` |
| 03 | `Get-ChildItem` | Get | 列文件 | `Get-ChildItem -File \| Sort-Object Length -Descending` |
| 04 | `Get-Help` / `man` / `-?` | Get | 查帮助 | `Get-Help Get-Process -Online` |
| 05 | `Get-Command` / `Get-Verb` | Get | 找命令 | `Get-Command -Verb Get -Noun Process` |

> 💡 **三查法的本质**：动词告诉你"危不危险"，参数告诉你"准不准"，路径告诉你"对不对"。

---

## 六、4 条安全红线速查表

| 类别 | 危险命令 | 危险等级 | 安全等价写法 |
|------|---------|---------|------------|
| 删除 | `Remove-Item -Path "X" -Recurse -Force` | 🔴 红 | 先 `Get-ChildItem` 看，再 `-WhatIf` 试运行 |
| 改策略 | `Set-ExecutionPolicy Unrestricted` | 🔴 红 | `Unblock-File -Path .\某个.ps1` |
| 格式化 | `Format-Volume -DriveLetter C` | 🔴 红 | 去磁盘管理 GUI 操作 |
| 执行字符串 | `iex (irm https://...)` | 🔴 红 | 先 `Invoke-RestMethod ... -OutFile`，再人眼 review，再 `. .\本地.ps1` |

> ⚠️ **黑名单不是不能用，是新手阶段不该没搞懂就用**。等你能背出每条红线，再去用 `Remove-Item`，那时候你已经知道 -WhatIf / -Confirm 怎么写了。

---

## 七、PowerShell 版本区别（pwsh vs 内置 5.1）

| 项目 | Windows PowerShell 5.1 | PowerShell 7（pwsh） |
|------|------------------------|----------------------|
| 是否自带 | ✅ Win 10 / 11 自带 | ❌ 需手动装（建议） |
| 程序名 | `powershell` | `pwsh` |
| 兼容度 | 老脚本兼容好 | 跨平台 + 现代语法 |
| CSV 编码 | `Export-Csv -Encoding UTF8` 会带 BOM | `Export-Csv -Encoding utf8` 不带 BOM |
| 本目录脚本 | ✅ 全部跑通 | ✅ 全部跑通 |

查你的版本：

```powershell
$PSVersionTable
# 输出里的 PSVersion: 5.1.xxxx  = 5.1
# 输出里的 PSVersion: 7.x.xxxx = 7
```

---

## 八、常见问题 / 避坑指南

1. **跑 `.ps1` 报红字 "无法加载文件，因为在此系统上禁止运行脚本"**
   PowerShell 默认不允许直接跑 .ps1。两种解法：
   - 一次性：`powershell -ExecutionPolicy Bypass -File ".\01-看进程_zh.ps1"`
   - 长期：`Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned`
   **绝对不要**用 `Set-ExecutionPolicy Unrestricted`——那是红线。

2. **`Get-Help -Examples` 提示"找不到帮助文件"**
   Windows PowerShell 5.1 默认不下载完整 help 文档。改用 `Get-Help <命令> -Online`（联网打开网页版）即可。

3. **桌面路径是 `C:\Users\你\OneDrive\Desktop` 而不是 `C:\Users\你\Desktop`**
   OneDrive 接管了桌面。用 `[Environment]::GetFolderPath("Desktop")` 让 Windows 告诉你真实路径，**不要硬编码桌面路径**——`03-列文件_zh.ps1` 里就是这么写的。

4. **AI 给的命令用 `Remove-Item` 但没解释**
   AI 给的命令如果出现 `Remove-` / `Set-` / `Format-` / `Invoke-Expression` / `iex` / `irm`，按"红线"处理——回 AI 一句："能不能用 `Get-` 类只读命令替代？"或者加上 `-WhatIf` 让它先试运行给你看。

5. **报错红字一大堆，慌了**
   别关窗口！用鼠标框选红字、`Ctrl+C` 复制、丢给 AI："我在 PowerShell 5.1 跑了这条命令……报错原文如下……请用大白话告诉我错在哪、给我改好的命令、这条命令还是只读的吗？"教程第 4.7 节有完整提示词。

6. **改脚本里的中文路径报错**
   PowerShell 默认中文编码是 GBK。把脚本存成 **UTF-8 with BOM**（VS Code 右下角点一下编码就能切），或者用英文路径测试通过后再换中文。

7. **脚本跑出来"啥都没有"**
   可能是因为你的环境里没有脚本里写的进程名（如 `chrome`）。脚本里加了 `-ErrorAction SilentlyContinue`，所以不爆红字。改成你自己电脑里有的进程名（比如 `notepad, explorer, qq`）再跑。

---

## 九、下一步

- **B18 批量脚本入门**：把单条命令写成一个能跑几百次、上千次的脚本——比如批量改文件名、批量读 Excel。
- **B19 模块化脚本**：把脚本拆成函数，放进 `.psm1` 模块，方便团队复用。
- **A5 安全红线**：本篇的 4 条红线只是入门级，A5 是完整版"AI 帮你写命令的安全审计清单"。

---

*本目录为《AI 办公实战：从小白到达人》系列 B17 文章的配套资产。01–05 脚本均经过 PowerShell 5.1 / 7 双版本验证；安全红线脚本只演示不执行。**看不懂的命令，绝不按回车**——这是新手阶段最重要的一条心法。*