搜索

powershell教程菜鸟教程

发表于 2026-10-17 02:24:18 来源:烟消火灭网

打开 Windows 电脑,教程教程按下 Win 键,菜鸟输入 "PowerShell",教程教程右键选择“以管理员身份运行”。菜鸟一个蓝色背景的教程教程命令行窗口弹出来,光标闪烁,菜鸟等着你敲字。教程教程这就是菜鸟 PowerShell。很多人第一次见它,教程教程觉得跟 CMD 长得差不多,菜鸟直接关掉。教程教程可惜了。菜鸟

CMD 是教程教程 DOS 时代留下来的老工具,能干的菜鸟活有限。PowerShell 不一样,教程教程它背后是 .NET 框架,命令叫 cmdlet(读作 command-let),格式统一成“动词-名词”的结构。比如 Get-Process 查看进程,Stop-Service 停止服务,Set-Location 切换目录。看一眼名字就知道这命令干什么的,不用死记。

先搞懂几个基本操作

查看当前目录下有什么文件:

Get-ChildItem

这等价于 CMD 里的 dir,也等价于 Linux 的 ls。想只看 .txt 文件?加个过滤:

Get-ChildItem -Filter *.txt

切换目录用 Set-Location,但更常用的别名是 cd:

cd C:\Users\你的用户名\Desktop

创建文件夹:

New-Item -ItemType Directory -Name "测试文件夹"

删除文件:

Remove-Item 文件名.txt

注意,PowerShell 里删除操作默认不走回收站,删了就没了。手别抖。

管道才是真正好用的地方

管道符号 | 把前一个命令的输出传给后一个命令处理。举个例子,列出当前运行的内存占用超过 100MB 的进程,按内存从大到小排:

Get-Process | Where-Object { $_.WorkingSet -gt 100MB} | Sort-Object WorkingSet -Descending

$_ 代表管道里当前这个对象,WorkingSet 是进程占用的物理内存。这套写法比 CMD 的 tasklist 灵活太多。

再比如,找出系统里所有已停止的服务:

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

想直接把这些服务全启动?后面接一个 | Start-Service 就行。当然别随便这么干,有些服务停了是有原因的。

变量和循环,写脚本的基础

PowerShell 的变量以 $ 开头,不用声明类型:

$name = "张三" $age = 25 Write-Host "姓名:$name,年龄:$age"

循环用 foreach:

$fruits = @("苹果", "香蕉", "橘子") foreach ($f in $fruits) {  Write-Host "水果:$f" }

@() 是数组的写法。条件判断用 if,跟大多数编程语言差不多:

if ($age -ge 18) {  Write-Host "成年人" } else {  Write-Host "未成年" }

比较运算符有点特别:-eq 等于,-ne 不等于,-gt 大于,-lt 小于。= 在 PowerShell 里是赋值,不能拿来比较。

写个能用的脚本试试

把下面代码保存为 backup.ps1:

$source = "C:\工作文件" $dest = "D:\备份\$(Get-Date -Format 'yyyy-MM-dd')" New-Item -ItemType Directory -Path $dest -Force Copy-Item -Path "$source\*" -Destination $dest -Recurse Write-Host "备份完成:$dest"

这个脚本把“工作文件”文件夹里的内容复制到 D 盘按日期命名的备份目录里。$(Get-Date -Format 'yyyy-MM-dd') 会在运行时替换成当天日期,比如 2025-03-17。

运行脚本之前,系统默认禁止执行 .ps1 文件。需要改一下执行策略:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

这条命令只对当前用户生效,不会影响系统全局设置。改完之后 .\backup.ps1 就能跑了。

遇到问题怎么办

忘了某个命令怎么用,直接查:

Get-Help Copy-Item -Examples

想看某个命令返回的对象有哪些属性:

Get-Process | Get-Member

这招特别实用。管道后面能接什么,取决于前面输出的对象类型。Get-Member 把对象的属性和方法全列出来,照着挑就行。

PowerShell 上手不难,关键是别把它当 CMD 用。它的设计思路是面向对象的,命令之间传递的是对象,不是纯文本。理解这一点,后面的路就好走了。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by powershell教程菜鸟教程,烟消火灭网   sitemap

回顶部