PowerShell--Switch

# 函数Switch的学习

<#示例 1 :

1.1 如果变量value的值和下面的数字1匹配那么就返回1的结果(默认的比较操作符为=)

1.2 请分别给变量赋予值 0,1,2,3 查看效果

#>

$value=1

Switch($value)

{

1 {"Number 1"}

2 {"Number 2"}

3 {"Number 3"}

}

==============================================================================

<#示例2:

2.1 自定义比较条件当多个条件满足的时候,switch将返回多个值 ,见《Mastering Powershell》--217页

2.2 尝试10, 150,210这,四个值,看看返回什么结果

#>

$value01 =210

switch ($value01)

{

{$_ -gt 100} { "$value01 is greater than 100" }  #注意:如果条件申明有表达式需要使用{}大括号,进行自定义条件

150 {"hi"}

{($_ -gt 200) -and ($_ -le 300)} {"$value01 is greater than 200 but less than 300" }

}

==============================================================================

<#示例3:

3.1 运行了示例2后,我们知道当Switch没有满足任何一个条件的时候将不返回结果,其实我们可以定义没有满足条件的话,返回默认结果

3.2 其实和if的Else一样,如下英文解释

In a similar manner as an If statement, the Switch statement executes code only if at least one of

the specified conditions is met. The keyword, which for the If statement is called Else, is called

default for Switch statement. When no other condition matches, the default clause is run.

#>

$value02= 15  # 请尝给变量value02分配 5,6,7,15这些值时,返回的结果

switch ($value02)

{

{$_ -le 5} {"$_ is a number from 1 to 5"}

6 {"Number is 6"}

{ (($_ -gt 6) -and ($_ -le 10)) } { "$_ is a number from 7 to 10" }

default { "$_ is a number outside the range of from 1 to 10"}

}

<#示例4:

4.1 通过上面的示例,我们已经知道Switch函数有多个条件满足的时候会返回多个结果;如果我希望仅返回一个结果,那么我们可以使用关键字

"break",只要一个条件满足就退出申明(即不再执行下面的条件)

4.2 英文解释如下

If you‘d like to receive only one result, while consequently making sure that only the first applicable

condition is performed, then append the break statement to the code.

In fact, now you get only the first applicable result. The keyword break indicates that no more

processing will occur and the Switch statement will exit.

#>

$value03 = 5    # 请尝试给变量value03分配 50,60,5 这些值,查看返回的结果

Switch ($value03)

{

50 { "the number 50"; break }      #当我们输入50的时候,3个条件都满足了,应该返回3个结果,但是使用了break只会返回一个结果

{$_ -gt 10} {"larger than 10"; break}

{$_ -is [int]} {"Integer number"; break}

}

时间: 2024-09-28 22:18:46

PowerShell--Switch的相关文章

Powershell 给server core 系统安装图形界面

PowerShell switch ($id)         {             "1" {Uninstall-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}             "2" {Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}             "3" {            

PowerShell 在hyper-v中创建虚拟机

# This script configures the Hyper-V machines used for the 50331 Course. # PowerShell 3.0 and Windows Server 2012 or Windows 8 Pro are required to perform this setup # The C:\ Drive should have at least 200GB of free space available. # All the files

通过PowerShell卸载所有的SharePoint 2010 解决方案

通过PowerShell卸载所有的SharePoint 2010 解决方案 为了演示,我经常需要拆毁再重建SharePoint 2010 环境. 我经常需要用到的操作就是移除demo开发环境中所有安装的SharePoint 解决方案. 这里是PowerShell脚本.它节省了我大量的时间,我希望也能给你带来帮助. 脚本: function Uninstall-AllSPSolutions { param ( [switch] $Local, [switch] $Confirm ) Start-S

Powershell 之加解密

#################  # Powershell Allows The Loading of .NET Assemblies  # Load the Security assembly to use with this script   #################  [Reflection.Assembly]::LoadWithPartialName("System.Security")   #################  # This function i

Powershell 之管理Linux服务器

PS本身是基于.NET框架的脚本开发工具,要想直接在Linux上运行,那几乎是不可能的. 了解Ansible的同学应该都知道其原理,PS也一样可以实现其相同的功能,要想完全拷贝,还是要下一番功夫的,这里呢只是简单介绍通过PS远程连接到Linux服务器. PS要连接Linux服务器,我们需要先下载SSH模块,请下载附件,成功下载后请将其进行注册(直接放到 C:\Windows\System32\WindowsPowerShell\v1.0\Modules),再通过命令验证是否成功 import-m

Powershell 的自动部署

 工作中重复性的版本移植,一天上线10几次,让我痛不欲生,频繁的操作也可能出现疲劳性失误,导致严重的生产故障.于是乎,闲暇时间,我开始研究使用powershell自动部署程序到Linux服务器. 脚本中涉及到以下工具: 1.Wincp:借助其自身的命令行模式完成程序部署 2.powershell的ssh-session模块,通过加载该模块连接到Linux服务器,执行相关shell命令 3..net 开始上代码 #Public environment configure $script:lin

通过PowerShell获取Windows系统密码Hash

当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢?作为白帽子,已经在对手防线上撕开一个口子,如果你需要进一步扩大战果,你首先需要做的就是潜伏下来,收集更多的信息便于你判断,便于有更大的收获.用什么方法才能有尽可能高的权限,同时能更有效的隐藏自己,是留webshell,留后门,种木马还是Rootkit?webshell,哪怕是一句话木马都很容易被管理员清除,放了木马,也容易被有经验的管理员查出,不管是早期自己创建进程,进程被干掉就完了,还是注入进程的木马,或者是以服务自启动的木马

通过PowerShell获取域名whois信息

Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商.域名注册日期和过期日期等).通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间.通常情况下,whois信息均为真实信息,通过whois信息可以找到域名注册人的很多真实信息,像电话,邮箱,NS记录,是对网站进行社工非常好的信息来源,对于安全从业人员来说,快速获取whois信息,能够帮助自己掌握目标网站的很多有用信息. 而whois信息通常是保存在各级域名注册

PowerShell 语法

注释 •#语句 •<# 语句 #> 变量 •命名法则 $ 做为前缀 •使用字母.数字.下划线均可 •查看所有变量 Get-ChildItem variable:或Get-Varialbe •获取作用域变量Get-Variable –Scope [Local|Global] •实例化对象 $dt=New-Object DateTime 数组 •定义$arr=1,2,3,4 •$arr=1..4 •取值 $arr[1,3]. $arr[1,3+2]. $arr[1..3+2] •赋值 $a,$b=

8. PowerShell - 基础概要,变量,字符和字符串操作,运算符操作

PowerShell脚本的基础概要 常量,变量的使用 各种字符串的操作 对运算符的操作 数组,哈希表:创建.修改合并数组和哈希表 条件判断:if, switch 语句 逻辑判断:使用运算符进行判断 循环控制:while, do-while, do- until , for,foreach 语句 模块化:组织和调整代码:使用切当的数据类型,调用其它脚本函数 WMI对象: WMI命名空间的概念,WMI所提供的功能,查看和使用WMI命名空间. WMI的类:get-wmiobject;  查询WMI A