Claude Code + PowerShell 命令大全 (2026 最新版)
·
一、安装与基础配置
1.1 一键安装 Claude Code (PowerShell)
# 官方推荐安装方式(无需管理员权限)
irm https://claude.ai/install.ps1 | iex
# 验证安装
claude --version
# 登录认证
claude login
# 诊断安装问题
claude doctor
1.2 备用安装方式
# npm 全局安装
npm install -g @anthropic-ai/claude-code
# 临时运行(不安装)
npx @anthropic-ai/claude-code
1.3 环境变量配置
# 设置 API Key(临时会话)
$env:ANTHROPIC_API_KEY = "sk-ant-xxxxxxxxxxxxxxxxxxxx"
# 设置自定义 API 端点
$env:ANTHROPIC_BASE_URL = "https://api.your-proxy.com"
# 永久保存到用户环境变量
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-xxxxxxxx", "User")
二、启用 PowerShell 工具
2.1 启用方法
方法一:通过 /config 菜单
/config
# 导航到 "Tools & Execution" → 启用 "PowerShell Tool (Preview)"
方法二:编辑 settings.json
// %USERPROFILE%\.claude\settings.json
{
"env": {
"CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
},
"defaultShell": "powershell",
"tools": {
"powershell": {
"enabled": true,
"version": "pwsh", // "pwsh" for PowerShell 7, "powershell" for 5.1
"allowedCommands": [
"Get-ChildItem",
"Get-Content",
"Get-CimInstance"
]
}
}
}
2.2 验证启用
在 Claude Code 中输入:
Do your available tools include PowerShell?
三、Claude Code CLI 基础命令
3.1 启动与退出
# 启动交互式会话
claude
# 单次查询(无头模式)
claude -p "解释这段代码的功能"
# 启动并加载指定项目
claude ./my-project
# 退出会话
/exit 或 Ctrl+C
3.2 模式切换
# 自动编辑模式(无需确认)
claude yolo
# 计划模式(先生成执行计划)
claude plan
# 聊天模式(默认)
claude chat
3.3 管道与文件输入
# 管道输入
Get-Content .\script.js | claude -p "优化这段代码"
# 从文件读取提示词
claude -f .\prompt.md
# 输出到文件
claude -p "生成一个 README.md" > README.md
四、Claude Code 内部 Slash 命令
| 命令 | 功能 |
|---|---|
/help |
显示所有可用命令 |
/clear |
清除当前对话上下文 |
/compact |
压缩对话历史以节省上下文空间 |
/history |
查看对话历史 |
/rewind |
回滚到上一个检查点 |
/resume |
恢复暂停的任务 |
/config |
打开设置菜单 |
/env |
管理环境变量 |
/plugin |
管理插件 |
/mcp |
管理 MCP 服务 |
/reload-plugins |
重新加载所有插件 |
4.1 环境变量管理
/env NODE_ENV=production
/env AZURE_SUBSCRIPTION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
/env --unset NODE_ENV
五、PowerShell 工具基础操作
5.1 文件与目录操作
# 递归列出所有 TypeScript 文件
Get-ChildItem -Path . -Recurse -Filter "*.ts" | Select-Object FullName
# 读取文件内容
Get-Content .\src\components\Button.tsx
# 创建新目录
New-Item -ItemType Directory -Path ".\src\features\auth"
# 创建文件备份
Copy-Item .\config.json .\config.json.bak
# 删除文件(带确认)
Remove-Item .\old-file.txt -Confirm
# 移动文件
Move-Item .\temp.txt .\docs\
5.2 系统信息查询
# 检查 Node.js 版本
node --version
# 查看可用内存
Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory, TotalVisibleMemorySize
# 查看 CPU 信息
Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed
# 查看磁盘使用情况
Get-PSDrive -PSProvider FileSystem | Select-Object Name, Used, Free
# 查看运行中的进程
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
5.3 Windows 服务管理
# 列出所有以 W 开头的服务
Get-Service | Where-Object { $_.Name -like 'W*' } | Export-Csv -Path services.csv -NoTypeInformation
# 启动服务
Start-Service -Name "wuauserv"
# 停止服务
Stop-Service -Name "wuauserv"
# 重启服务(带权限检查)
function Restart-ServiceIfPossible {
param([string]$ServiceName)
$svc = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if (-not $svc) { Write-Warning "Service not found: $ServiceName"; return }
try {
Restart-Service -Name $ServiceName -Force -ErrorAction Stop
Write-Host "Restarted: $ServiceName"
} catch {
Write-Warning "Restart failed (likely needs admin). Try: Start-Process pwsh -Verb RunAs"
}
}
5.4 包管理
# 列出顶级 npm 包
npm list --depth=0
# 更新全局包
npm update -g
# 使用 pnpm 安装(冻结锁文件)
pnpm install --frozen-lockfile
# 使用 winget 安装软件
winget install --id Microsoft.PowerShell -e --silent
# 检查已安装的 winget 包
winget list --id Microsoft.VisualStudioCode -e
六、实用自动化脚本与工作流
6.1 项目依赖一键安装
# 安装项目所需的所有工具
$tools = @("Microsoft.PowerShell", "GitHub.cli", "Microsoft.DotNet.SDK.9", "Microsoft.VisualStudioCode")
foreach ($id in $tools) {
if (-not (winget list --id $id -e --accept-source-agreements 2>$null | Select-String $id)) {
winget install --id $id -e --silent --accept-source-agreements --accept-package-agreements
} else {
Write-Host "Skip: $id (already installed)"
}
}
6.2 Git PR 一键工作流
# 创建分支 → 提交 → 推送 → 创建 PR
$branch = "feat/$(Get-Date -Format yyyyMMdd-HHmm)-claude-edit"
git checkout -b $branch
git add -A
git commit -m "Apply Claude edits"
git push -u origin $branch
gh pr create --fill --web
6.3 .NET 测试与覆盖率
# 运行测试并生成覆盖率报告
$proj = ".\src\MyApp.Tests\MyApp.Tests.csproj"
dotnet test $proj `
--collect:"XPlat Code Coverage" `
--results-directory ./TestResults `
--logger "console;verbosity=normal"
$cov = Get-ChildItem .\TestResults -Recurse -Filter coverage.cobertura.xml | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Write-Host "Coverage report: $($cov.FullName)"
6.4 Windows 事件日志分析
# 获取过去 24 小时的错误事件
$since = (Get-Date).AddHours(-24)
Get-WinEvent -LogName "Application" -FilterHashtable @{
Level = 2
StartTime = $since
} | Select-Object TimeCreated, Id, Message | Format-Table -AutoSize
6.5 跨 WSL/PowerShell 边界
# 正确地从 WSL 中 grep Windows 路径
$winPath = "C:\Users\me\proj"
$wslPath = wsl wslpath -a "$winPath"
wsl rg --hidden --no-ignore "TODO" $wslPath
七、高级配置与技巧
7.1 自定义命令
在项目根目录创建 .claude/commands/finalize.md:
# Finalize Task
1. 运行所有测试
2. 修复所有 linting 问题
3. 使用 conventional commit 格式提交更改
4. 创建 pull request
5. 如有需要更新文档
然后在 Claude Code 中使用:
/finalize
7.2 钩子(Hooks)配置
// ~/.claude/settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "PowerShell",
"shell": "powershell",
"command": "Write-Host 'Running PowerShell command...'"
}
]
}
}
7.3 安全提示
- 避免使用
dangerously-skip-permissions在生产环境 - PowerShell 工具不支持自动模式(Auto Mode)
- PowerShell 配置文件(
$PROFILE)不会被加载 - 后台作业(
&)会触发确认提示
八、常见问题与解决方案
8.1 “Running scripts is disabled on this system”
# 查看当前执行策略
Get-ExecutionPolicy -List
# 允许当前用户运行本地脚本(推荐)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
8.2 “pwsh is not found”
# 安装 PowerShell 7
winget install --id Microsoft.PowerShell -e
# 或者在 settings.json 中使用 PowerShell 5.1
"version": "powershell"
8.3 “claude 不是内部或外部命令”
# 查看 npm 全局目录
npm config get prefix
# 将该目录下的 node_modules\.bin 添加到系统 PATH
$bin = "C:\Users\YourName\AppData\Roaming\npm\node_modules\.bin"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", $userPath + ";" + $bin, "User")
8.4 太多确认提示
在 settings.json 中添加允许的命令:
"tools": {
"powershell": {
"allowedCommands": [
"Get-ChildItem",
"Get-Content",
"Get-CimInstance",
"node",
"npm",
"pnpm"
]
}
}
更多推荐
所有评论(0)