在前面的章节中,主要介绍了Powershell的开发工具,变量,运算符以及一些特殊的变量,从本节开始介绍Powershell中的语法结构。
本节主要介绍Powershell中的if条件判断。另外希望读者从本节开始使用Powershell_ISE进行代命令的输入与运行,Powershell_ISE提供了界面化的命令输入,参数提示,自带补全,debug等特性,非常有利于编写正确的脚本。
if可用于根据一个或多个条件测试的结果选择运行不同的命令。与Java、C#、C、C++编程语言中的if的使用方法完全一致。
if 语句的语法:
if (<测试条件1>) <语句块1>} [elseif (<测试条件2>) {<语句块2>}] [else {<语句块3>}]
运行 If 语句时,PowerShell 计算 <测试条件1> 条件表达式的结果是 true 还是 false。
如果 <测试条件1> 为 true,则运行 <语句块1>,并且 PowerShell 退出if语句。
如果 <测试条件1> 为 false,则 PowerShell 计算 <测试条件2> 条件表达式所指定的条件。
如果 <测试条件2> 为 true,则运行 <语句块2>,并且 PowerShell 退出 if 语句。
如果 <测试条件1> 和 <测试条件2> 的计算结果都为 false,则运行 <语句块3> 代码块,并且PowerShell 退出 if 语句。
注意: 在其他语言中,else if判断分支中的else和if都是分开的,但是在Powershell中的,两个单词是连接在一起的,需要特别注意。
下面举例说明if语句的使用。
if语句只包含一个判断分支。
$a=3 if ($a -gt 2) { Write-Host "The value $a is greater than 2." }
在开始处定义了$a=3,然后对a的进行判断,显然条件成立,最后会打印出
"The value $a is greater than 2."
2. 也可以对其添加else分支,如
$a=3 if ($a -gt 2) { Write-Host "The value $a is greater than 2." } else { Write-Host "The value $a is less than or equal to 2, is not created or is not initialized." }
3. 添加elseif即可实现对条件的多次判断。
if ($a -gt 2) { Write-Host "The value $a is greater than 2." } elseif ($a -eq 2) { Write-Host "The value $a is equal to 2." } else { Write-Host "The value $a is less than 2 or was not created or initialized." }
总结
if判断用来判断条件是否成立,并执行相应的操作。比如判断知道的文件或者文件夹是否存在,如果存在就写入文件,如果不存在就创建文件。比如判断知道的调用是否正确执行等等。