在上一课中,我们学会了使用 Get-Process 这样的命令来获取信息。但它的结果只是显示在屏幕上,然后便消失了。如果我们想对这个结果进行进一步的处理——比如只显示某些特定进程,或者将列表保存到文件——该怎么办呢?

这就需要引入 变量 的概念。变量就像是计算机内存中的一个带标签的收纳盒,你可以把命令的结果放进去,贴上标签(变量名),之后随时通过标签来使用这个结果。

一、 变量的基础操作

PowerShell 中,所有变量名都必须以美元符号 $ 开头。

1. 创建变量与赋值
使用等号  =  进行赋值,这被称为“赋值运算符”。

PowerShell Code:

1 # 将数字 100 存入名为 $number 的变量中
2 $number = 100
3 
4 # 将文本 "Hello, World!" 存入名为 $greeting 的变量中
5 $greeting = "Hello, World!"
6 
7 # 将 Get-Process 命令得到的所有进程对象存入名为 $allProcesses 的变量中
8 $allProcesses = Get-Process

 

赋值完成后,命令行不会有任何输出,因为结果已经被保存到变量里了。

2. 使用变量
要使用变量里的内容,只需输入变量名即可。

PowerShell Code:

1 # 显示 $greeting 变量里的内容
2 $greeting
3 
4 # 显示 $allProcesses 变量里的内容(即所有进程)
5 $allProcesses

 

3. 变量在管道中的使用
变量的真正威力在于可以和其他命令或管道结合。

PowerShell Code:

1 # 将进程列表传递给 Where-Object 命令,筛选出 CPU 使用量大于 10 的进程
2 $allProcesses | Where-Object { $_.CPU -gt 10 }
3 
4 # 直接将命令结果存入变量并立即使用
5 $notepadProcess = Get-Process -Name notepad
6 $notepadProcess | Stop-Process

 

二、 PowerShell 中的数据类型

虽然 PowerShell 不强制声明数据类型(这称为“弱类型”),但数据本身是有类型的。理解基本类型至关重要。

数据类型描述示例
String字符串 文本,用单引号或双引号括起 $name = '张三'
Int32整数 整型数字 $count = 50
Double双精度浮点数 带小数点的数字 $price = 99.99
Boolean布尔型 逻辑值,只有 $true 或 $false $isFinished = $true
Array数组 多个值的有序集合 $services = @('Service1', 'Service2')
Object对象 最复杂的类型,拥有属性和方法 $process = Get-Process notepad

查看变量的类型:
使用 GetType() 方法。

PowerShell Code:

1 $number = 100
2 $number.GetType().Name  # 输出:Int32
3 
4 $text = "100"
5 $text.GetType().Name    # 输出:String

 

注意:100数字)和 "100"文本)是完全不同的。

三、 强制指定数据类型

你可以显式地定义变量的类型,这可以提高代码的严谨性和性能。

PowerShell Code:

1 # 指定 $id 必须为整数类型
2 [int]$id = 123
3 
4 # 如果尝试赋予字符串,PowerShell 会尝试转换,若失败则报错
5 [string]$processName = "Notepad"
6 
7 # 定义一个字符串数组
8 [string[]]$computerNames = @('PC01', 'PC02', 'PC03')

 

四、 实用技巧与最佳实践

1. 使用变量扩展字符串
在双引号字符串中,可以直接使用变量,其值会被替换。

PowerShell Code:

1 $user = "Admin"
2 $message = "当前登录的用户是:$user"
3 $message  # 输出:当前登录的用户是:Admin

 

2. 清除变量
使用 Clear-Variable 或 Remove-Variable

PowerShell Code:

1 Clear-Variable -Name greeting   # 清空变量值(变量名仍存在,值为空)
2 Remove-Variable -Name greeting  # 彻底删除变量

 

3. 变量命名规范

  • 使用有意义的名称:$serviceList 比 $a 好得多。

  • 推荐使用“驼峰命名法”:$myVariableName

动手实验

请在 PowerShell ISE 中执行以下代码,感受变量的威力:

PowerShell Code:

 1 # 1. 获取所有服务,并保存到变量中
 2 $allServices = Get-Service
 3 
 4 # 2. 从所有服务中筛选出正在运行的服务
 5 $runningServices = $allServices | Where-Object { $_.Status -eq 'Running' }
 6 
 7 # 3. 计算正在运行的服务的数量
 8 $runningServices.Count
 9 
10 # 4. 显示前5个运行中的服务的名称
11 $runningServices | Select-Object -First 5 -Property Name

 

结语

变量是自动化脚本的“记忆体”。通过将命令的结果保存到变量中,我们打破了单条命令的孤立性,使得复杂的数据处理和流程控制成为可能。现在,你可以获取信息、保存信息、并对信息进行加工了。

在下一篇中,我们将学习运算符,这是对变量中的数据进行计算和比较的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!