找到 463 篇文章 关于 PowerShell
5K+ 次浏览
考虑下面的例子,我们创建了一个高级函数来获取特定的进程信息,例如进程名称、进程 ID (PID)、启动时间、响应状态等。
function Get-ProcessInformation{
[cmdletbinding()]
param(
[Parameter(Mandatory=$True)]
[string[]]$name
)
Begin{
Write-Verbose "程序已启动"
}
Process{
Write-Verbose "正在提取进程信息"
Get-Process $name | Select Name, ID, StartTime, Responding | ft - AutoSize
}
End{
Write-Verbose "函数在此结束"
}
}以上是高级函数示例。当我们运行上述命令时,它将给出……阅读更多
4K+ 次浏览
AllowEmptyString() 属性用于字符串变量,而 AllowEmptyCollection() 用于不同数据类型的数组(集合)。考虑下面的例子。在这里,我们使用了一个强制变量 $name(字符串)和 $stringarray(字符串数组)。
function print_String{
[cmdletbinding()]
param(
[parameter(Mandatory=$True)]
[string]$name,
)
Write-Output "正在写入单个字符串"
$name
}如果我们获取上述变量的输出,它将生成以下错误:
PS C:\WINDOWS\system32> print_String
cmdlet print_String at command pipeline position 1
Supply values for the following parameters:
name:
print_String : Cannot bind argument to……阅读更多
372 次浏览
下面是一个 PowerShell 高级函数的示例,我们将尝试了解强制参数是如何工作的。
function math_Operation{
[cmdletbinding()]
param([int]$val1, [int]$val2)
Write-Host "乘法:$($val1*$val2)"
Write-Host "加法:$($val1+$val2)"
Write-Host "减法:$($val1-$val2)"
Write-Host "除法:$($val1+$val2)"
}当你执行上述示例并且没有提供值时,脚本不会要求你提供值,它将默认采用值并执行程序。请参见下面的执行结果。
PS C:\WINDOWS\system32> math_Operation
乘法:0
加法:0
减法:0
除法:0
即使你已经提到了两个变量($val1……阅读更多
604 次浏览
在开始学习 PowerShell 高级函数之前,假设我们已经了解了 PowerShell 函数。你可以在下面查看关于 PowerShell 函数的解释。
https://tutorialspoint.com/explain-the-powershell-function
在这里,我们将以计算不同类型运算的数学函数为例。我们已经有一个简单的函数代码,如下所示。
function math_Operation{
param([int]$val1, [int]$val2)
Write-Host "乘法:$($val1*$val2)"
Write-Host "加法:$($val1+$val2)"
Write-Host "减法:$($val1-$val2)"
Write-Host "除法:$($val1+$val2)"
}以上是简单函数的例子。当你运行上述代码并从终端运行函数时,你会注意到……阅读更多
18K+ 次浏览
你可以在 PowerShell 函数中传递参数,要捕获这些参数,你需要使用参数。通常,当你使用函数外部的变量时,你不需要传递参数,因为变量本身是公共的,可以在函数内部访问。但在某些情况下,我们需要将参数传递给函数,下面的示例解释了如何编写相应的代码。
在函数中传递单个参数,
function writeName($str){
Write-Output "嗨!……$str"
}
$name = Read-Host "请输入姓名"
writeName($name)
在这里,我们正在传递……阅读更多
228 次浏览
通常,当变量声明为公共变量或脚本中函数外部的变量(不在任何其他变量或条件中)时,你不需要将该值传递给函数,因为当在调用函数之前初始化变量时,函数会保留变量的值。
示例
function PrintOut{
Write-Output "你的名字是:$name"
}
$name = Read-Host "请输入你的名字"
PrintOut
在上面的示例中,$name 变量是在名为 PrintOut 的函数外部声明的。因此,由于可以在函数内部读取该变量,你可以直接使用其名称来使用该变量。
输出
请输入你的名字……阅读更多
804 次浏览
PowerShell 中的函数是为了减少重复代码的冗余,这意味着重复的代码,将它们绑定到一个函数中,并在需要时调用该函数,这样你就不需要多次编写代码了。
示例
假设,你想一次性执行两个值 5 和 4 的算术运算(乘法、加法、除法和减法),那么你将为两个值编写不同的运算,或者你将值赋给名为 $val1 和 $val2 的变量,并在其上执行各种运算,如下面的示例所示。
$val1 = 5
$val2 = 4
$val1……阅读更多
2K+ 次浏览
PowerShell 中的 Measure-Object 用于测量命令的属性。有各种可用的测量参数。例如,平均值、计数、总和、最大值、最小值等等。
示例
Get-Process | Measure-Object
输出
PS C:\WINDOWS\system32> Get-Process | Measure-Object
Count : 278
Average :
Sum :
Maximum :
Minimum :
Property :
在这里,在上面的输出中,共有 278 个进程正在运行。如果你想检查最大内存使用情况,你可以使用 WorkingSet 属性和 -Maximum 参数。
Get-Process | Measure-Object -Property WorkingSet -Maximum
输出
PS C:\WINDOWS\system32> Get-Process | Measure-Object……阅读更多
689 次浏览
顾名思义,Group-Object 用于对相似的属性进行分组。
示例
Get-Service | Group-Object Status
输出
Count Name Group
----- ---- -----
160 Stopped {AarSvc_8f3023, AdobeFlashPlayerUpdateSvc, AJR outer, ALG…}
130 Running {AdobeARMservice, Appinfo, AudioEndpointBuilder, Audiosrv…}
上面的输出按状态(“已停止”和“正在运行”)分组。共有 160 个服务处于已停止状态,130 个服务处于正在运行状态。
同样,你可以使用 starttype 属性过滤组。
Get-Service | Group-Object StartType
输出
PS C:\WINDOWS\system32> Get-Service | Group- Object StartType
Count Name …阅读更多
11K+ 次浏览
要在 PowerShell 中对输出进行排序,你需要使用 Sort-Object Pipeline cmdlet。在下面的示例中,我们将从 Get-Process 命令检索输出,并根据内存和 CPU 使用情况对其进行排序。
示例
Get-Process | Sort-Object WorkingSet | Select -First 10
输出
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
0 0 60 8 0……阅读更多