【探索PowerShell 】【九】条件控制、逻辑

简介:

PowerShell作为一个动态脚本语言,同样具有条件判断、逻辑控制的能力。诸如if、elseif、else以及switch都是被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)

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

示例:

 
  1. "MaRui" -eq "marui" <enter>  
  2.                                 结果:"True" 
  3. "MaRui" -ieq "MARUI" <enter>  
  4.                                 结果:"True" 
  5. "MaRui" -ceq "MARUI" <enter>  
  6.                                 结果:"False" 

逻辑运算

    •  -and   与

    •  -or   或

    •  -not   非

    •  !   非

 

 

条件


if、else、elseif语句

基本语法:

 
  1. if (条件)  
  2. {代码}  
  3. elseif (条件)  
  4. {代码}  
  5. else (条件)  
  6. {代码}  
  7. else 
  8. {代码} 

例如:

 
  1. $n=10  
  2. if ($n -eq 1)  
  3. {"n=1"}  
  4. elseif ($n -ne 1)  
  5. {"n!=1,and n=$n"

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

 
  1. $ComputerName = (Get-WmiObject -class win32_computersystem).name 
  2. $OS_Version = (Get-WmiObject -class win32_operatingsystem -computer $ComputerName).version  
  3.  
  4. if (($OS_Version -eq "5.1.2600") -or ($OS_Version -eq "5.2.3790"))  
  5. {  
  6.     write-host "Computer Name:"$ComputerName  
  7.  
  8.     if ($OS_Version -eq "5.1.2600")   
  9.     {  
  10.         write-host "OS:Windows XP" 
  11.     }  
  12.     elseif ($OS_Version -eq "5.2.3790")  
  13.     {  
  14.         write-host "OS:Windows 2003" 
  15.     }  
  16. }  
  17.  
  18. elseif (($OS_Version -eq "5.0.2195") -or ($OS_Version -eq "6.1.7600"))  
  19. {  
  20.     write-host "Computer Name:"$ComputerName  
  21.  
  22.     if ($OS_Version -eq "5.0.2195")   
  23.     {  
  24.         write-host "OS:Windows 2000 Server" 
  25.     }  
  26.     elseif ($OS_Version -eq "6.1.7600")  
  27.     {  
  28.         write-host "OS:Windows 7" 
  29.     }  
  30. }  
  31.  
  32. else 
  33. {  
  34.     write-host "$ComputerName is not supported." 
  35. }  
  36.  
  37. "–END OF REPORT–" 

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

"switch"语句

基本语法:

 
  1. switch (表达式)  
  2. {  
  3.   (表达式) {代码}  
  4.   值 {代码}  
  5.   default {默认执行代码}  

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

 
  1. switch ((Get-WmiObject -Class win32_ComputerSystem).domainRole)  
  2. {  
  3.   0 {Write-Host "Standalone Workstation"}  
  4.   1 {Write-Host "Member Workstation"}  
  5.   2 {Write-Host "Standalone Server"}  
  6.   3 {Write-Host "Member Server"}  
  7.   4 {Write-Host "Backup Domain Controller"}  
  8.   5 {Write-Host "Primary Domain Controller"}  
  9.   default {Write-Host "Cannot determine domain role"}  

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

 
  1. switch (100)  
  2. {  
  3.   (99 + 1) {Write-Host "99+1=100"}  
  4.   (1 + 100) {Write-Host "1+100=100"}  
  5.   (50*2) {Write-Host "50*2=100"}  
  6.   (33.333*3) {Write-Host "33.333*3=100"}  

运行结果:

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




     本文转自melvillo 51CTO博客,原文链接:http://blog.51cto.com/marui/293907,如需转载请自行联系原作者





相关文章
|
3月前
|
C++
C++程序中的if语句:控制程序的逻辑之钥
C++程序中的if语句:控制程序的逻辑之钥
30 0
|
3月前
|
C++
在C++语言中条件状态
在C++语言中条件状态
28 0
|
11月前
|
Linux
linux中使用if/else语句实现条件控制的示例
linux中使用if/else语句实现条件控制的示例
95 3
|
11月前
|
Shell Linux iOS开发
根据条件关闭软件
根据条件关闭软件
42 0
|
Java C++ 容器
基础三:控制执行流程
基础三:控制执行流程
73 0
|
Shell 开发者
Shell脚本条件控制| 学习笔记
快速学习Shell脚本条件控制
123 0
Shell脚本条件控制| 学习笔记
多条件判断场景中规则执行器的设计
多条件判断场景中规则执行器的设计
186 0
多条件判断场景中规则执行器的设计
|
运维 API 网络安全
DO447管理任务执行--控制任务执行
DO447管理任务执行--控制任务执行
132 0
DO447管理任务执行--控制任务执行
|
运维 数据库
DO447管理任务执行--运行选定的任务
DO447管理任务执行--运行选定的任务
159 0
DO447管理任务执行--运行选定的任务
还在写大量 if 来判断?试试用一个规则执行器来替代它
还在写大量 if 来判断?试试用一个规则执行器来替代它 近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示:
还在写大量 if 来判断?试试用一个规则执行器来替代它