探索PowerShell(九) 条件控制、逻辑
作者 佚名
来源 PowerShell
浏览
发布时间 2013-07-09
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) 前者是忽略大小写,后者则是区分大小写。 示例: 复制代码 代码如下: "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." } "–END OF REPORT–" 在我的计算机上的运行结果: "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"} } 运行结果: 这节就说到这里吧,下一节将讲一讲循环语句的使用。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于探索PowerShell(九) 条件控制、逻辑的所有评论