Windows PowerShell 是 Windows 系统中非常重要的命令行环境和自动化脚本工具。它既可以像传统命令提示符一样操作文件、目录和程序,也可以通过对象、管道和脚本对系统进行更精细的管理。

一、PowerShell 的基本特点

PowerShell 常用命令大多采用“动词-名词”的形式,例如:

Start-Service

其中:

• Get 通常表示获取信息

• Set 通常表示设置内容

• New 通常表示新建对象

• Copy 通常表示复制对象

• Move 通常表示移动对象

• Remove 通常表示删除对象

• Start 通常表示启动

• Stop 通常表示停止

这种命名方式比传统命令更长,但语义更清楚,也更适合脚本自动化。

二、查看帮助与查找命令

1、查看命令帮助

Get-Help 命令名

例如:

Get-Help Get-ChildItem

如果希望查看更完整的帮助信息,可以使用:

Get-Help Get-ChildItem -Full

查看示例:

Get-Help Get-ChildItem -Examples

查看某个参数说明:

Get-Help Get-ChildItem -Parameter Recurse

这是学习 PowerShell 最重要的命令之一。遇到不熟悉的命令时,不必立即上网搜索,先用 Get-Help 查看语法、参数和示例。

2、查找可用命令

Get-Command

查找包含某个关键词的命令:

Get-Command *Process*

查找某个动词开头的命令:

Get-Command Get-*

查找某个模块中的命令:

Get-Command -Module Microsoft.PowerShell.Management

Get-Command 适合回答“当前系统里有哪些命令可以用”。

3、查看对象有哪些属性和方法

Get-Process | Get-Member

Get-Member 用来查看管道中对象的类型、属性和方法。

例如,Get-Process 返回的是进程对象。通过 Get-Member 可以知道进程对象包含 Name、Id、CPU、WorkingSet 等属性。后续筛选、排序和格式化都可以围绕这些属性进行。

三、目录与路径操作

1、查看当前位置

Get-Location

常用别名:

pwd

该命令用于显示当前所在目录。

2、切换目录

Set-Location 路径

例如:

Set-Location C:\Users

常用别名:

cd C:\Users

返回上一级目录:

cd ..

切换到用户目录:

cd $HOME

3、列出当前目录内容

Get-ChildItem

常用别名:

gci

列出指定目录内容:

Get-ChildItem C:\Windows

列出隐藏文件:

Get-ChildItem -Force

递归列出子目录内容:

Get-ChildItem -Recurse

只列出文件:

Get-ChildItem -File

只列出文件夹:

Get-ChildItem -Directory

4、查看路径是否存在

Test-Path 路径

例如:

Test-Path C:\Users

如果路径存在,返回 True;如果不存在,返回 False。

四、文件与文件夹操作

1、新建文件夹

New-Item -ItemType Directory -Path 文件夹名

例如:

New-Item -ItemType Directory -Path logs

2、新建文件

New-Item -ItemType File -Path 文件名

例如:

New-Item -ItemType File -Path app.log

3、复制文件

Copy-Item 源路径 目标路径

例如:

Copy-Item .\app.log .\backup\app.log

复制整个文件夹:

Copy-Item .\src .\backup\src -Recurse

4、移动文件

Move-Item 源路径 目标路径

例如:

Move-Item .\app.log .\logs\app.log

移动命令也常用于重命名文件。

5、重命名文件

Rename-Item 原文件名 新文件名

例如:

Rename-Item app.log server.log

6、删除文件

Remove-Item 文件名

例如:

Remove-Item app.log

删除文件夹及其内容:

Remove-Item .\logs -Recurse

强制删除:

Remove-Item .\logs -Recurse -Force

Remove-Item -Recurse -Force 风险较高。执行前应先确认路径是否正确,避免误删重要文件。

7、批量删除指定类型文件

Get-ChildItem -Recurse -Filter *.log | Remove-Item

这个命令会递归查找当前目录下所有 .log 文件,并通过管道传给 Remove-Item 删除。

更谨慎的做法是先查看匹配结果:

Get-ChildItem -Recurse -Filter *.log

确认无误后再执行删除。

五、读取与写入文本内容

1、查看文本文件内容

Get-Content 文件名

常用别名:

type 文件名

例如:

Get-Content .\app.log

2、查看前几行

Get-Content .\app.log -TotalCount 10

这表示查看文件前 10 行。

3、持续查看日志变化

Get-Content .\app.log -Wait

这个命令适合查看不断写入的日志文件。

4、写入文本内容

Set-Content 文件名 "文本内容"

例如:

Set-Content .\hello.txt "Hello PowerShell"

注意:Set-Content 会覆盖原有内容。

5、追加文本内容

Add-Content 文件名 "追加内容"

例如:

Add-Content .\hello.txt "New line"

Add-Content 会在文件末尾追加内容,不会覆盖原文件。

6、把命令输出保存到文件

Get-Process | Out-File process.txt

也可以使用重定向:

Get-Process > process.txt

追加输出:

Get-Process >> process.txt

六、管道、筛选与排序

PowerShell 的管道符是:|,它可以把前一个命令的输出传给后一个命令。

1、筛选对象

Get-Process | Where-Object {$_.CPU -gt 10}

其中:$_ 表示当前管道中的对象。-gt 表示 greater than,即大于。

这个命令表示筛选 CPU 使用时间大于 10 的进程。

常见比较运算符包括:

• -eq 等于

• -ne 不等于

• -gt 大于

• -ge 大于等于

• -lt 小于

• -le 小于等于

• -like 通配符匹配

• -match 正则匹配

2、选择对象属性

Get-Process | Select-Object Name, Id, CPU

这表示只显示进程的名称、进程 ID 和 CPU 属性。

只显示前 5 个结果:

Get-Process | Select-Object -First 5

只显示最后 5 个结果:

Get-Process | Select-Object -Last 5

3、排序对象

Get-Process | Sort-Object CPU

按 CPU 从高到低排序:

Get-Process | Sort-Object CPU -Descending

4、格式化输出

表格格式:

Get-Process | Format-Table Name, Id, CPU

列表格式:

Get-Process | Format-List Name, Id, CPU

需要注意:Format-Table 和 Format-List 主要用于显示结果,不适合作为管道中间步骤继续处理数据。

七、进程管理命令

1、查看进程

Get-Process

查看指定进程:

Get-Process notepad

2、启动程序

Start-Process notepad

打开某个文件:

Start-Process .\readme.txt

打开网页:

Start-Process "https://www.microsoft.com"

或者:

Start-Process "msedge.exe" -ArgumentList "https://www.microsoft.com"

3、停止进程

Stop-Process -Name notepad

根据进程 ID 停止进程:

Stop-Process -Id 1234

强制停止:

Stop-Process -Name notepad -Force

停止进程要谨慎,尤其不要随意停止系统关键进程。

4、查找占用资源较高的进程

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU

这个命令可以查看 CPU 使用时间较高的前 10 个进程。

八、服务管理命令

1、查看系统服务

Get-Service

查看指定服务:

Get-Service wuauserv

2、筛选正在运行的服务

Get-Service | Where-Object {$_.Status -eq "Running"}

筛选已停止的服务:

Get-Service | Where-Object {$_.Status -eq "Stopped"}

3、启动服务

Start-Service 服务名

例如:

Start-Service wuauserv

4、停止服务

Stop-Service 服务名

例如:

Stop-Service wuauserv

某些服务需要管理员权限才能启动或停止。对系统服务操作前,应确认服务用途,避免影响系统正常运行。

5、重启服务

Restart-Service 服务名

Restart-Service spooler

九、网络检查命令

1、测试网络连通性

Test-Connection 地址

例如:

Test-Connection www.baidu.com

这类似于传统的 ping 命令。

2、测试端口是否可连接

Test-NetConnection 地址 -Port 端口号

例如:

Test-NetConnection www.example.com -Port 443

这适合检查某个服务器端口是否可访问。

3、查看 IP 配置

Get-NetIPConfiguration

该命令可以查看网卡、IP 地址、网关、DNS 等信息。

4、查看网络连接

Get-NetTCPConnection

筛选某个端口:

Get-NetTCPConnection -LocalPort 80

十、系统信息命令

1、查看计算机基本信息

Get-ComputerInfo

这个命令会输出大量系统信息,包括操作系统、版本、硬件、BIOS、内存等。

2、查看操作系统信息

Get-CimInstance Win32_OperatingSystem

3、查看处理器信息

Get-CimInstance Win32_Processor

4、查看内存信息

Get-CimInstance Win32_PhysicalMemory

5、查看磁盘信息

Get-Volume

查看物理磁盘:

Get-Disk

查看分区:

Get-Partition

这些命令适合系统检查、运维巡检和故障排查。

十一、环境变量命令

1、查看所有环境变量

Get-ChildItem Env:

PowerShell 中的环境变量可以通过 Env: 驱动器访问。

2、查看指定环境变量

$env:PATH

查看用户目录:

$env:USERPROFILE

查看当前用户名:

$env:USERNAME

3、临时设置环境变量

$env:NODE_ENV = "development"

这种方式只对当前 PowerShell 会话有效。关闭终端后,设置会失效。

4、删除当前会话中的环境变量

Remove-Item Env:NODE_ENV

如果要永久设置环境变量,通常需要使用系统设置界面,或使用专门命令写入用户级、系统级环境变量。

十二、压缩与解压缩命令

1、压缩文件夹

Compress-Archive -Path .\src -DestinationPath .\src.zip

2、压缩多个文件

Compress-Archive -Path .\a.txt, .\b.txt -DestinationPath .\files.zip

3、解压缩文件

Expand-Archive -Path .\src.zip -DestinationPath .\output

4、覆盖解压

Expand-Archive -Path .\src.zip -DestinationPath .\output -Force

压缩命令适合备份文件、打包日志、传输项目资料等场景。

十三、执行脚本

PowerShell 脚本文件通常以 .ps1 结尾。

1、运行当前目录下的脚本

.\script.ps1

注意,当前目录下的脚本通常需要写成 .\script.ps1,不能只写 script.ps1。

这是因为 PowerShell 默认不会自动从当前目录查找可执行脚本,从而减少误执行风险。

2、查看当前执行策略

Get-ExecutionPolicy

查看所有作用域的执行策略:

Get-ExecutionPolicy -List

3、设置当前用户执行策略

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

RemoteSigned 通常表示:本地创建的脚本可以运行,从网络下载的脚本需要可信签名。

执行策略是 PowerShell 的安全机制之一,但它不是完整的安全沙箱。不要运行来源不明的脚本。

4、临时绕过执行策略运行脚本

powershell -ExecutionPolicy Bypass -File .\script.ps1

这类命令应谨慎使用,只适合明确知道脚本来源和内容的情况。

十四、别名与命令习惯

PowerShell 为了兼容用户习惯,提供了许多别名。

常见别名包括:

• cd Set-Location

• pwd Get-Location

• dir Get-ChildItem

• ls Get-ChildItem

• cat Get-Content

• type Get-Content

• copy Copy-Item

• move Move-Item

• del Remove-Item

• rm Remove-Item

• cls Clear-Host

查看某个别名对应的真实命令:

Get-Alias ls

查看所有别名:

Get-Alias

在交互式操作中,使用 ls、cd、cat 很方便。但在正式脚本中,更建议使用完整命令名,例如 Get-ChildItem、Set-Location、Get-Content。完整命令虽然更长,但可读性更好,也更不容易产生歧义。

十五、常见完整操作流程

1、查找并删除日志文件

先查看:

Get-ChildItem -Recurse -Filter *.log

确认后删除:

Get-ChildItem -Recurse -Filter *.log | Remove-Item

更谨慎地模拟执行:

Get-ChildItem -Recurse -Filter *.log | Remove-Item -WhatIf

-WhatIf 可以预览命令将要执行的操作,适合删除、移动、修改系统资源前使用。

2、查看占用资源较高的进程

Select-Object -First 10 Name, Id, CPU

这条命令体现了 PowerShell 管道的典型用法:获取进程,按 CPU 排序,选出前 10 个,并只显示关键字段。

3、查看正在运行的服务

Select-Object Name, DisplayName, Status

4、把系统信息导出为文件

Get-ComputerInfo | Out-File .\computer-info.txt

5、检查某个端口是否可访问

Test-NetConnection 127.0.0.1 -Port 3000

这在前端、后端和本地服务开发中非常常用。例如检查本地 3000 端口服务是否正在监听。

十六、容易出错的地方

1、不要误删路径

执行删除命令前,尤其是使用 -Recurse 和 -Force 时,应先检查路径:

Get-ChildItem 路径

必要时先使用:

Remove-Item 路径 -WhatIf

确认无误后再真正执行。

2、不要把格式化命令放在管道中间

例如:

Get-Process | Format-Table | Where-Object {$_.Name -like "node*"}

这种写法通常不合适,因为 Format-Table 会把对象转换为用于显示的格式化对象,不再适合继续筛选。

更好的写法是:

Format-Table Name, Id, CPU

筛选、排序、选择应放在前面,格式化输出应放在最后。

3、不要盲目运行网上复制的脚本

PowerShell 可以操作文件、服务、注册表、网络和系统配置。来源不明的脚本可能造成数据删除、配置篡改或安全风险。

运行脚本前应先查看内容:

Get-Content .\script.ps1

4、注意管理员权限

有些命令需要管理员权限,例如修改系统服务、写入系统目录、调整执行策略、修改系统级配置等。

如果命令提示权限不足,可以尝试以管理员身份打开 PowerShell,但不要在不理解命令作用的情况下使用管理员权限执行脚本。

5、注意 PowerShell 与 CMD 命令差异

PowerShell 可以运行许多传统 CMD 命令,但两者语法并不完全相同。

例如,PowerShell 中变量使用 $,路径可以通过对象处理,管道传递的是对象,而不是单纯文本。

因此,在 PowerShell 中编写脚本时,最好优先使用 PowerShell 原生命令。

小结

Windows PowerShell 的核心价值不只是执行单个命令,而是用对象、管道和脚本把多个操作组合成自动化流程。掌握目录操作、文件处理、文本读写、管道筛选、进程服务管理、网络检查和脚本执行后,就可以完成大多数 Windows 日常管理与开发辅助任务。

打开网易新闻 查看精彩图片

点赞有美意,赞赏是鼓励