• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

PowerShell 的 For 迴圈用法教學與範例

介紹如何在 PowerShell 中使用 For 迴圈處理重複性的工作。

For 迴圈

For 迴圈主要用於處理重複次數是固定的問題,也就是在執行迴圈之前,就已經事先知道要迭代幾次的情況,其語法如下。

For (<計數器啟始>; <條件式>; <計數器增量>) {
  <程式碼區塊>
}

迴圈在執行值時會先執行一次計數器啟始後,判斷條件式是否成立,若成立則執行程式碼區塊,接著執行計數器增量後再次判斷條件式是否成立,若成立則繼續重複執行程式碼區塊,如此反覆執行直到條件式不成立時才跳出迴圈。

例如若要利用 For 迴圈列印從 1 到 5 的數值,就可以這樣寫:

# $i 從 1 跑到 5
For ($i = 1; $i -le 5; $i++) {
  # 列出 $i 的數值
  $i
}
1
2
3
4
5

這裡的 For 迴圈一開始設定 $i 從 1 開始執行,條件設定為 $i 小於或等於 5($i -le 5),每執行完一次程式碼區塊就讓 $i 遞增 1($i++),整個迴圈的效果就是列印從 1 到 5 的數值。

跳過當次疊代

在迴圈執行到一半時,如果想要跳過當次的迭代,可以使用 Continue,例如若想要讓迴圈在執行時,跳過偶數的的 $i,就可以這樣寫:

For ($i = 1; $i -le 5; $i++) {
  # 跳過偶數的 $i
  If ($i % 2 -eq 0) {
    Continue
  }

  $i
}
1
3
5

這裡我們在迴圈的程式碼區塊插入一條判斷式,檢查 $i 是否為偶數,若 $i 為偶數則執行 Continue 跳過當次的迭代(不執行下方輸出 $i 的部分)。

離開迴圈

如果想要讓迴圈執行到一半時直接中斷、跳出迴圈,可以使用 Break,例如若想要讓迴圈在 $i 在大於 3 的時候就直接跳出,可以這樣寫:

For ($i = 1; $i -le 5; $i++) {
  # 若 $i 大於 3 則跳出迴圈
  If ($i -gt 3) {
    Break
  }

  $i
}
1
2
3

這裡我們在迴圈的程式碼區塊插入一條判斷式,檢查 $i 是否大於 3,若條件成立則執行 Break 跳出 For 迴圈。

無窮迴圈

當 For 迴圈不設置任何條件時,就是一種無窮迴圈,這種情況通常會搭配 Break 使用。列印出 1 到 5 也可以這樣寫:

$i = 1
For (;;) {
  If ($i -gt 5) {
    Break
  }
  $i    # 輸出 $i
  $i++  # 遞增 $i
}
1
2
3
4
5

迴圈標籤

在巢狀結構的多層迴圈,Continue 與 Break 可以搭配標籤的方式來指定要作用的迴圈是哪一個,迴圈的標籤要放在迴圈之前,以冒號開頭,並加上標籤名稱,例如 :MyLoopName,而在呼叫 Continue 與 Break 的時候就可以用標籤名稱指定要作用的迴圈是哪一個,以下是一個簡單的範例:

# 設定迴圈標籤
:MyLoopName For ($i = 1; $i -le 5; $i++) {
  For ($j = 1; $j -le 5; $j++) {
    if ($i + $j -gt 3) {
      # 跳出指定標籤的迴圈
      Break MyLoopName
    }
    echo "i = $i, j = $j"
  }
}
i = 1, j = 1
i = 1, j = 2

參考資料:Adam the Automator、微軟官方文件

分類:PowerShell

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide