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)
前者是忽略大小写,后者则是区分大小写。
示例:
PS E:\> "MaRui" -eq "marui"
True
PS E:\> "MaRui" -ieq "MARUI"
True
PS E:\> "MaRui" -ceq "MARUI"
False
|
逻辑运算
• -and 与
• -or 或
• -not 非
• ! 非
条件
if、else、elseif语句
基本语法: | if (条件) | | {代码} | | elseif (条件) | | {代码} | | else (条件) | | {代码} | | else | | {代码}COPY |
例如: | $n=10 | | if ($n -eq 1) | | {"n=1"} | | elseif ($n -ne 1) | | {"n!=1,and n=$n"}COPY |
下面的脚本是用来查看本机操作系统的,使用了"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." | | } | | | | "–END OF REPORT–"COPY |
"switch"语句
基本语法: | switch (表达式) | | { | | (表达式) {代码} | | 值 {代码} | | default {默认执行代码} | | }COPY |
例如,我们可以查询"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"} | | }COPY |
判断语句为表达式的例子: | 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"} | | }COPY |
这节就说到这里吧,下一节将讲一讲循环语句的使用。
本文出自 “马睿的技术博客” 博客,请务必保留此出处http://marui.blog.51cto.com/1034148/293907 |