程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 【探索PowerShell 】【九】條件控制、邏輯

【探索PowerShell 】【九】條件控制、邏輯

編輯:關於.NET

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://marui.blog.51cto.com/1034148/293907

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved