探索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"}
}

运行结果:

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

(0)

相关推荐

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

    逻辑判断 先来简单介绍最基本的逻辑判断: • -eq 判断是否等于(equal) • -lt 判断时候小于(less than) • -gt 判断是否大于(greater than) • -ge 判断是否大于或等于(greater of equal) • -le 判断是否小于或等于(less or equal) • -ne 判断是否不等于(no equal) 在之前的几个小节中,如果你注意的话,应该可以发现PowerShell对于大小写并不敏感,可是在某些时候我们却需要区分它们,因此,还可以使用

  • 探索PowerShell(六) 脚本基础简要

    PowerShell脚本基础知识概览: 常量.变量.数组.哈希 条件.逻辑 循环控制 模块化 WMI对象(各种设备) ADSI对象(活动目录) 常量.变量.数组.哈希 各种字符串操作 使用常量和变量 各种运算符和表达式 创建.修改.合并数组或哈希表 条件.逻辑 判断各种条件 "if"."switch"语句 使用运算符进行判断 循环控制 "while"."do while"."do until"."

  • Kotlin编程条件控制示例详解

    目录 本文总览 1. When 表达式 2. If 表达式 总结 本文总览 本篇来看看 Kotlin的条件控制,这一节知识点 建议与Java中的条件结构类比,会很好理解并记住. 1. When 表达式 在 Kotlin 用 when 来定义多个分支的条件表达式.Kotlin中这个语法与 java 中的 switch 语句非常类似.代码块的执行就是将参数与所有的分⽀条件顺序⽐较,直到满⾜某个分⽀条件:(示例 ) when (x) { 1 -> print("x == 1") 2 -

  • Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

  • Python入门_条件控制(详解)

    条件控制其实就是if...else...(如果...条件是成立的,就做...:反之,就做...)的使用,其基本结构是: 具体看下面这个例子: def account_login(): # 定义函数 password = input('请输入密码:') # 输入密码 if password == '12345': # 如果输入密码是12345,则登录成功 print('登录成功') else: print('密码有误,请重新输入') # 否则提示密码有误,请重新输入 account_login()

  • Java 条件控制与循环控制实例

    条件控制语句: 1. if-else语句 if(条件1){ 代码块1; }else if(条件2){ 代码块2; }else{ 代码块3; } 2. switch语句 switch(变量a){ case A: //代码块1 break; case B: //代码块2 break; default: //前面没有满足的条件,执行default //代码块3 break; } 若是不用break,则会一直执行下去,直到整个循环终止. switch语句接收的变量类型有限:char,byte,short

  • Python3中条件控制、循环与函数的简易教程

    一.条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,而计算机很多自动化任务,也是根据条件判断来实现的. 我们可以通过下图,来了解一下条件语句执行的过程 和 Java 差不多,不同点: 1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块: 2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块: 3.elif 代替了 else if: 4.在 Python 中没有 switch – case 语句. age =

  • python小白练习题之条件控制与循环控制

    目录 前言 一:选择结构: 二:循环结构 总结 前言 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print('your age is', age) print('adult') 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行pr

  • Spring @Conditional通过条件控制bean注册过程

    目录 Spring对配置类的处理主要分为2个阶段 配置类解析阶段 bean注册阶段 Spring对配置类处理过程 源码位置 整个过程大致的过程 ConfigurationCondition接口 Conditional使用的3步骤 阻止配置类的处理 bean不存在的时候才注册 根据环境选择配置类 Condition指定优先级 ConfigurationCondition使用 自定义一个ConfigurationCondition类 总结 Spring对配置类的处理主要分为2个阶段 配置类解析阶段

  • 探索PowerShell (四) PowerShell的对象、格式与参数

    今天贴博文晚了,感谢各位能继续关注! 本节将要给大家介绍一下PowerShell下的对象,基本格式以及参数.依然属于PowerShell的基础. PowerShell中的对象 在本教程开篇我们说过,PowerShell是基于面向对象化的,不像传统的shell那样基于文本.这其中最主要的原因就是因为Win平台在管理操作上主要以面向对象为主,因此为了符合系统特点和我们的操作习惯,PowerShell也继承了这一特色.因此,不像传统的shell,在PowerShell中,我们可以随意地与对象进行互动,

随机推荐