Powershell(3)
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:powershell(3)_哔哩哔哩_bilibili
一、变量
在 PowerShell 中,变量用于存储数据值,以便在脚本或命令中重复使用。PowerShell 变量非常灵活,可以存储各种类型的数据,包括数字、字符串、对象等。
1.变量的声明与赋值
在 PowerShell 中,声明变量不需要指定数据类型,你可以直接赋值。变量名以 $
符号开头。
(1)字符串(需要双引号)
$name="Z1eaf"
(2)数字
$num=1
(3)如果有特殊字符需要作变量,可以使用{}将其包裹,这样就能成功声明了。
${'who am i'}="I am Z1eaf."
(4)数学运算
$n=(15+2)*3
(5)命令
$l=ls
(6)多个变量赋值
$a=$b=10
(7)变量交换
变量声明可以进行变量的交换,输入下面命令,就会发现,$d=10、$c=2,实现变量交换
$c=10
$d=2
$c,$d=$d,$c
2.查看变量存在
(1)查看所有定义的变量
要查看当前 PowerShell 会话中定义的所有变量,可以使用以下命令:
Get-Variable
或者使用别名:
gv
这将列出当前会话中所有的变量及其值。
(2)查找特定的变量
如果你只想查看特定的变量是否存在,可以使用 Get-Variable
命令加上变量名:
Get-Variable -Name aaa
Get-Variable -Name bbb
如果变量存在,它将显示变量的值;如果不存在,将显示错误信息。
(3)测试变量是否存在
要测试一个变量是否存在,可以使用 Test-Path
命令结合变量路径前缀 variable:
:
Test-Path variable:aaa
这将返回 $true
表示变量存在,返回 $false
表示变量不存在。
3.删除变量
要删除一个变量,可以使用 Remove-Variable
命令:
Remove-Variable -Name aaa
或者使用别名:
del variable:aaa
这将从当前会话中删除指定的变量。
4.注意
(1)$$:可以查看最后运行的变量
(2)$?:可以查看最后运行的变量及允许情况
二、自动化变量
在 PowerShell 中,自动化变量是一种特殊的变量,它们由 PowerShell 自动创建并填充,提供了有关当前会话和系统环境的信息。这些变量通常以 $
符号开头,后面跟着一个或多个字母。
常见的自动化变量
1. $PSVersionTable
这个变量提供了 PowerShell 版本信息,包括版本号、构建号、CLR 版本等。
$PSVersionTable
2. $Host
这个变量代表当前的宿主环境,例如控制台、交互式窗口等。你可以使用这个变量来获取宿主的属性或调用宿主的方法。
$Host
3. $ShellId
这个变量提供了当前宿主环境的标识符。
$ShellId
4.$PID
这个变量表示当前 PowerShell 进程的进程 ID。
$PID
5.$HOME
这个变量表示当前用户的主目录路径。
$HOME
注意事项
-
自动化变量是由 PowerShell 自动创建的,你不应该尝试修改它们的值。
-
一些自动化变量可能在不同的宿主环境或 PowerShell 版本中有所不同。
通过使用这些自动化变量,你可以获取有关当前 PowerShell 会话和系统环境的详细信息,从而更好地控制和自动化你的任务。
三、环境变量
在 PowerShell 中,环境变量是操作系统级别的变量,它们存储了有关系统环境的信息,如路径、用户配置等。这些变量可以被操作系统、应用程序以及 PowerShell 脚本访问和修改。环境变量对于确保脚本和应用程序能够正确地找到所需的资源(如文件、目录、可执行程序等)非常重要。
1.访问环境变量
在 PowerShell 中,你可以使用 Get-ChildItem
命令配合环境变量的路径来访问环境变量:
Get-ChildItem Env:
这将列出所有的环境变量及其值。
2.查看特定的环境变量
如果你想要查看特定的环境变量,可以使用 Get-Item
命令:
Get-Item Env:\Path
这将显示 Path
环境变量的值。
此外,还可以使用通配符去筛选
3.设置环境变量
你可以使用 $env
哈希表来设置环境变量。以下是如何设置用户环境变量和机器环境变量的示例:
(1)设置用户环境变量
$env:MY_VARIABLE = "some_value"
这将在当前用户的环境中设置一个名为 MY_VARIABLE
的环境变量。
(2)设置机器环境变量
要设置机器环境变量,你需要使用 [System.Environment] 类的方法:
[Environment]::SetEnvironmentVariable("MY_MACHINE_VARIABLE", "some_value", [EnvironmentVariableTarget]::Machine)
这将在机器级别设置一个名为 MY_MACHINE_VARIABLE
的环境变量。
4.删除环境变量
你可以使用 Remove-Item
命令来删除环境变量:
powershell复制
Remove-Item Env:\MY_VARIABLE
这将从当前用户的环境中删除 MY_VARIABLE
环境变量。