当我们使用 Get-Process 这样的命令时,结果会立刻显示在屏幕上,然后消失。如果我们想对这个结果进行进一步操作,比如筛选出特定的进程,或者计数,就需要再次输入命令。这无疑是低效的。

变量 就是为了解决这个问题而生的。它本质上是计算机内存中的一块存储空间,你可以把它想象成一个带标签的盒子。你可以把任何数据(一个数字、一段文本、一个命令的结果)放进去,并给它起一个名字(标签)。之后,在任何需要用到这个数据的地方,你只需要喊它的名字(使用变量名),就能拿到里面的内容。

一、 变量的基础操作:存放与取出

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

1. 创建变量与赋值(把东西放进盒子)
使用等号  =  进行赋值,这被称为"赋值运算符"。它的作用是将右边的值赋予左边的变量。

1 # 把数字 100 放进一个名为 $number 的盒子
2 $number = 100
3 
4 # 把文本 "Hello" 放进一个名为 $text 的盒子
5 $text = "Hello"
6 
7 # 把 Get-Process 命令得到的所有进程对象,放进一个名为 $allProcesses 的盒子
8 $allProcesses = Get-Process

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

2. 使用变量(从盒子里取出东西)
要使用变量里的内容,只需输入变量名并按回车。

1 # 查看 $text 盒子里装了什么
2 $text
3 
4 # 查看 $allProcesses 盒子里装了什么(会显示所有进程列表)
5 $allProcesses

二、 PowerShell 的特色:使用 [] 指定变量类型

PowerShell 有一个很有特色的功能:你可以使用方括号 [] 来明确告诉 PowerShell 这个变量应该存储什么类型的数据。

为什么要指定类型?

  • 安全性:避免意外地将错误类型的数据赋给变量

  • 性能:帮助 PowerShell 更高效地处理数据

  • 可读性:让代码更清晰,一看就知道变量应该存储什么

1 # 告诉 PowerShell:这个变量只能存储整数
2 [int]$age = 25
3 
4 # 告诉 PowerShell:这个变量只能存储文本
5 [string]$name = "张三"
6 
7 # 如果尝试将错误类型赋给变量,PowerShell 会报错
8 [int]$score = "abc"  # 这行会出错,因为"abc"不是数字

[]  括号的使用规则:

  • 放在变量名的开头,$ 符号之后

  • 括号内写数据类型的名称,如 [int][string]

  • 这是可选的,但推荐使用,特别是当你明确知道变量应该存储什么类型时

三、 为什么变量如此重要?

  1. 避免重复,提升效率:只需执行一次耗时的命令(如获取全公司用户列表),将结果存入变量,即可反复使用。

  2. 保证一致性:在脚本运行期间,变量的值是被"定格"的。你基于变量所做的所有操作,都源于同一时刻的数据快照,避免了因数据实时变化导致的结果不一致。

  3. 增强代码可读性:一个良好的变量名(如 $studentNameList)远比一段复杂的命令更容易让人理解其意图。

四、 变量的命名规范:给盒子贴个好标签

给变量起一个好名字是良好编程习惯的开始。

  • 使用有意义的名称:名字应清晰反映变量所存储的内容。

    • 差:$a$x1 (完全不知道里面是什么)

    • 好:$serviceName$totalCount$isValid

  • 推荐命名法:

    • 驼峰命名法:$studentName (首字母小写,后续单词首字母大写)

    • 清晰易懂:$file_count 也可以,但要保持一致性

  • 避免以下情况:

    • 使用特殊字符和空格(如 $my-variable 是错误的)

    • 使用 PowerShell 的关键字(如 $process$if

五、 查看与管理变量

  • 查看当前定义的所有变量:
    PowerShell Code:

     1 Get-Variable 
  • 删除一个变量(清空盒子并扔掉标签):
    PowerShell Code:

     1 Remove-Variable -Name text 

动手实验

请在 PowerShell ISE 的控制台中逐行执行以下代码,亲身感受变量的作用:

 1 # 1. 使用类型标识创建变量
 2 [int]$studentCount = 30
 3 [string]$className = "三年二班"
 4 [bool]$isActive = $true
 5 
 6 # 2. 显示这些变量
 7 $studentCount
 8 $className
 9 $isActive
10 
11 # 3. 尝试重新赋值(注意类型约束)
12 $studentCount = 35    # 正确:35是整数
13 # $studentCount = "三十五"  # 错误:如果取消注释这行,会报错
14 
15 # 4. 简单的变量使用
16 $totalStudents = $studentCount
17 $classInfo = "班级:" + $className + ",人数:" + $totalStudents
18 $classInfo

结语

恭喜!你现在已经掌握了变量的基本用法。你已经知道:

  • 如何用 $name = value 来存储数据

  • 如何通过 $name 来使用存储的数据

  • PowerShell 的特色功能:使用  []  指定变量类型

  • 良好的变量命名习惯

这是从执行单行命令迈向编写复杂自动化脚本的关键一步。变量让你的脚本拥有了"记忆",使得数据的传递和加工成为可能。

在下一篇中,我们将深入探讨变量中存储的数据本身,从最基础的 整数(Integer) 开始,了解不同数据类型的特性。