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

所属分类: 脚本专栏 / PowerShell 阅读数: 1734
收藏 0 赞 0 分享
逻辑判断

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

• -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"}
}

运行结果:


这节就说到这里吧,下一节将讲一讲循环语句的使用。
更多精彩内容其他人还在看

Powershell学习笔记--使用正则表达式查找文件

本文介绍PowerShell中使用正则表达式的查找文件的方法,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。
收藏 0 赞 0 分享

Windows Powershell 介绍和安装

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。
收藏 0 赞 0 分享

Windows Powershell 自定义控制台

这篇文章主要介绍了Windows Powershell 自定义控制台,包括选项、字体、布局和颜色四个方面的自定义风格,希望对大家有所帮助
收藏 0 赞 0 分享

windows Powershell 快速编辑模式和标准模式

powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。
收藏 0 赞 0 分享

PowerShell中查找字符串位置的IndexOf函数使用实例

这篇文章主要介绍了PowerShell中查找字符串位置的IndexOf函数使用实例,例子简单明了,容易看懂,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell使用正则表达式查找字符串实例

这篇文章主要介绍了PowerShell使用正则表达式查找字符串实例,主要是对match运算符的使用介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中使用正则表达式跨行匹配字符串的方法

这篇文章主要介绍了PowerShell中使用正则表达式跨行匹配字符串的方法,重点在于正则表达式的写法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中查看当前版本、Windows版本、.NET版本信息的代码

这篇文章主要介绍了PowerShell中查看当前版本、Windows版本、.NET版本信息的代码,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell 入门基础教程

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
收藏 0 赞 0 分享

PowerShell Contains函数查找字符串实例

这篇文章主要介绍了PowerShell Contains函数查找字符串实例,Contains函数的作用是查询一个字符串中是否存在另一个字符串,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多