当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 最佳 PowerShell 备忘单

作者:精品下载站 日期:2024-12-14 03:45:57 浏览:12 分类:玩电脑

最佳 PowerShell 备忘单


正在寻找一份好的 PowerShell 备忘单?那么您就来对地方了。过去 10 年我一直在使用 PowerShell。在那段时间里,我在很多地方写下了最有用的cmdlet、运算符或有用的命令,只是为了提醒他们。

但我现在花了一些时间来制作最好的 PowerShell Cheat Sheet。这不仅适合初学者,而且高级用户仍然会发现它很有价值。

在此备忘单中,您将找到所有运算符、使用变量的技巧、流程控制语句(if-else、循环等)以及集合和哈希表。我还添加了新的 PowerShell 7 三元运算符和 Null 合并运算符。

PowerShell 备忘单下载

对于您的备忘单副本,只需填写下面的表格,您将收到一个 PDF 版本,您可以将其打印到您的邮箱中。

大多数命令在该网站上也有解释,只需使用右上角的搜索功能即可快速查找特定命令。我也会在这篇文章中对不同的项目进行简单的解释,供大家参考。

很高兴知道

该表的第一部分包含一些值得注意的命令。我最常用的命令之一是显示所有参数功能。您可以在键入 cmdlet 后按 Ctrl +Space 来执行此操作。

为了使其更加简单,我建议将以下命令添加到您的 PowerShell 配置文件中。这样您只需按 Tab 两次即可查看所有可能的参数。

Set-PSReadlineKeyHandler -Key Tab -Function Complete

此外,Get-History cmdlet 也无需按向上箭头键即可查找您几分钟前使用的命令。请务必尝试一下。

运营商

就像任何其他编程或脚本语言一样,PowerShell 具有许多可以使用的运算符。在该表上,您会找到最常用的,以方便您使用。我将对应的运算符分组在一起以节省一些空间。

$a += 5 or $a -= 5

添加并分配或减去并分配

$a *= 2 or $a /= 2

乘法和分配或除法和分配

2 -eq $a or 2 -ne $a

大于或等于(右侧变量)

$a -gt 2 or $a -lt 2

大于或小于

2 -ge $a

小于或等于(右侧变量)

2 -le $a

小于或等于(右侧变量)

我写了一篇关于 PowerShell 运算符的完整文章,如果您想了解更多信息,请务必查看它。

变量和对象

分配变量非常简单,但在 PowerShell 中,有一些方便的方法可以快速创建范围或分配多个变量。此外,PowerShell 中的范围在某些情况下也很有用。但请记住,不要对所有事情都使用全局作用域,通常有更好的方法。

$a = "Hello"

为变量赋值

$a, $b = "Hello","Bye"

多变量赋值

$range = 1..10

创建一个带有序列的数组

$_

获取当前管道对象

$null

空值

[type]$var

声明类型(int、string)变量

$global:var

在全局范围内分配变量

流量控制语句

流程控制语句允许您根据某些条件控制脚本接下来应该执行的操作。最常见的流程控制语句当然是 if-else 语句。

此外,For 和 ForEach 循环也很常用并且众所周知。但鲜为人知的是 PowerShell 7 中提供的新三元运算符和空合并运算符。

if ($condition) { } else { }

简单的 If-Else 语句

($x -gt 10) ? "High" : "Low"

if-else 的三元运算符 (PS7)

switch ($var) { }

switch语句

for ($i=0; $i -lt 10; $i++) { }

标准 for 循环

foreach ($item in $collection) {}

循环迭代集合

while ($condition) { }

带条件的 While 循环

$result = $value ?? "Default"

如果值为 null,则分配默认值(PS7)

$value ??= DefaultValue

如果 null (PS7) 则赋值

$result = ${object}?.Property

如果对象存在则访问属性(PS7)

$element = ${array}?[index]

如果数组存在则访问元素(PS7)

集合和哈希表

使用数据集时,您实际上离不开数组、哈希表或对象。在 PowerShell 备忘单中,您将找到从集合项之一创建、分配或检索信息所需的一切。

您是否知道哈希表在提高代码可读性方面也特别有用?通过 splatting,我们可以在分配 cmdlet 的参数之前将它们分组到一个漂亮的表中。这使得编辑参数值变得更加容易,而无需水平滚动。

$array = @('item1', 'item2', 'item3')

创建带有值的数组

$array[index]

访问数组元素

$array.Length

获取数组长度

$array.Add(item)

将项目添加到数组

$array.Remove(item)

从数组中删除项目

$hash = @{
key1 = 'value1';
key2 = 'value2';
}

创建哈希表

$hash.key1

访问哈希密钥

$hash.key2 = 'new value'

为哈希键分配值

$hash.Add('key3', 'value')

添加键值对

$hash.Remove('key2')

删除键值对

$obj = [PSCustomObject]@{
Prop1 = 'Val1';
Prop2 = 'Val2'
}

自定义对象

输入/输出

PowerShell 还非常适合从系统(例如 Microsoft 365)导出数据并生成报告。表中列出了您需要了解的基本 cmdlet。但如果您想了解更多信息,请务必查看 PowerShell Excel 模块。

$var = Read-Host

读取用户输入

Get-Content

读取文件内容

Import-Csv

从 CSV 文件导入

Export-Csv

导出至 CSV 文件

Write-Host "Hello"

写入控制台

Write-Host "$($obj.test)"

使用 obj 属性写入控制台

$var | Out-GridView

输出到交互式网格视图

运行脚本和处理

运行 PowerShell 脚本并不那么困难。但是你知道如何在当前范围内运行脚本吗?或者作为后台任务?大多数人不会每天使用这些方法,但它们非常有用,因此我将它们列在备忘单上供您参考。

Start-Process notepad

启动外部进程或应用程序

Start-ThreadJob -ScriptBlock {
Get-Process }

在后台运行脚本或任务

. .\script.ps1

在当前范围内运行脚本(点源)

& .\script.ps1

在新范围中运行脚本(调用运算符)

管道和格式

PowerShell 中的管道字符允许您将左侧的结果传递到右侧的另一个 cmdlet 或脚本块。这样您就不必将结果“存储”在变量中,并为所有内容创建循环。

大多数有经验的 PowerShell 用户都知道这些方法,但是当您对 PowerShell 非常陌生时,最好使用管道方法快速检查正确的方法。

Get-Process | Sort-Object -Property Name

按名称对进程进行排序

Get-ChildItem *.txt | Where-Object {$_.Length -gt 1KB}

过滤大于1KB的文本文件

Get-Process | Select-Object -Property Name, ID, CPU

选择进程名称、ID 和 CPU 使用率

Get-Process | ForEach-Object {$_.ProcessName}

处理管道中的每个项目

Get-ChildItem | Format-List -Property Name, Length

在列表中显示文件名和长度

Get-Process | Format-Table -Property ID, CPU -AutoSize

在具有自动调整列大小的表中显示进程

总结

请务必下载此 PowerShell 备忘单并将其打印出来,以便您可以快速检查。如果您喜欢该表,请务必与同事分享。如果您不喜欢印刷版本,那么您可以随时为此页面添加书签,其中包含相同的信息。

如果您有任何疑问或知道真正需要在工作表上的命令,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯