华域联盟 PowerShell 探索PowerShell(九) 条件控制、逻辑

探索PowerShell(九) 条件控制、逻辑

逻辑判断

先来简单介绍最基本的逻辑判断:

• -eq 判断是否等于(equal)

• -lt 判断时候小于(less than)

• -gt 判断是否大于(greater than)

• -ge 判断是否大于或等于(greater of equal)

• -le 判断是否小于或等于(less or equal)

• -ne 判断是否不等于(no equal)

在之前的几个小节中,如果你注意的话,应该可以发现PowerShell对于大小写并不敏感,可是在某些时候我们却需要区分它们,因此,还可以使用诸如:

• -ieq (case-insensitive)

• -ceq (case-sensitive)

前者是忽略大小写,后者则是区分大小写。

示例:


复制代码 代码如下:

"MaRui" -eq "marui" <enter>

结果:"True"

"MaRui" -ieq "MARUI" <enter>

结果:"True"

"MaRui" -ceq "MARUI" <enter>

结果:"False"

逻辑运算

• -and 与

• -or 或

• -not 非

• ! 非

条件


if、else、elseif语句

基本语法:


复制代码 代码如下:

if (条件)

{代码}

elseif (条件)

{代码}

else (条件)

{代码}

else

{代码}

例如:


复制代码 代码如下:

$n=10

if ($n -eq 1)

{"n=1"}

elseif ($n -ne 1)

{"n!=1,and n=$n"}

下面的脚本是用来查看本机操作系统的,使用了"if"语句。请复制下面的脚本并且保存为"OS.ps1",用PowerShell运行试试。


复制代码 代码如下:

$ComputerName = (Get-WmiObject -class win32_computersystem).name

$OS_Version = (Get-WmiObject -class win32_operatingsystem -computer $ComputerName).version

if (($OS_Version -eq "5.1.2600") -or ($OS_Version -eq "5.2.3790"))

{

write-host "Computer Name:"$ComputerName

if ($OS_Version -eq "5.1.2600")

{

write-host "OS:Windows XP"

}

elseif ($OS_Version -eq "5.2.3790")

{

write-host "OS:Windows 2003"

}

}

elseif (($OS_Version -eq "5.0.2195") -or ($OS_Version -eq "6.1.7600"))

{

write-host "Computer Name:"$ComputerName

if ($OS_Version -eq "5.0.2195")

{

write-host "OS:Windows 2000 Server"

}

elseif ($OS_Version -eq "6.1.7600")

{

write-host "OS:Windows 7"

}

}

else

{

write-host "$ComputerName is not supported."

}

"�CEND OF REPORT�C"

在我的计算机上的运行结果:


"switch"语句

基本语法:


复制代码 代码如下:

switch (表达式)

{

(表达式) {代码}

值 {代码}

default {默认执行代码}

}

例如,我们可以查询"domainRole"的值来判断计算机在当前Active Directory域中担任的角色,试试下面的代码:


复制代码 代码如下:

switch ((Get-WmiObject -Class win32_ComputerSystem).domainRole)

{

0 {Write-Host "Standalone Workstation"}

1 {Write-Host "Member Workstation"}

2 {Write-Host "Standalone Server"}

3 {Write-Host "Member Server"}

4 {Write-Host "Backup Domain Controller"}

5 {Write-Host "Primary Domain Controller"}

default {Write-Host "Cannot determine domain role"}

}

判断语句为表达式的例子:


复制代码 代码如下:

switch (100)

{

(99 + 1) {Write-Host "99+1=100"}

(1 + 100) {Write-Host "1+100=100"}

(50*2) {Write-Host "50*2=100"}

(33.333*3) {Write-Host "33.333*3=100"}

}

运行结果:


这节就说到这里吧,下一节将讲一讲循环语句的使用。

本文由 华域联盟 原创撰写:华域联盟 » 探索PowerShell(九) 条件控制、逻辑

转载请保留出处和原文链接:https://www.cnhackhy.com/13989.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部