捷徑重複與迴圈:批次處理一堆檔案或項目

進階 依官方資訊整理 iPhone · 圖文 7 分鐘 · 更新 2025/6/18
iLab學校技術長進階技術・終端機・系統維修・依官方資訊整理
已有 42,781 人學會這個技巧
簡報模式
在 iOS/iPadOS 捷徑中,批次處理檔案或項目最核心的兩個動作是『重複每個項目』(For Each)與『重複』(Repeat);前者逐一遍歷一個清單,後者依固定次數執行,搭配『如果』條件可做出完整的自動化流水線。

開始前

適用系統iOS 17 以上
字級

在門市試用捷徑這件事,最常見的卡點不是不會用,而是「我有一百張截圖、一個資料夾的 PDF,難道要一個一個點?」。很多人就是在這裡放棄,覺得自動化離自己太遠。其實捷徑早就把這件事處理好了——你需要的只是迴圈,而它一點都不難。

我自己帶客人示範時,會先講清楚一個觀念:批次處理不是「跑很多次捷徑」,而是「跑一次捷徑、讓它自己把清單裡每一項都做完」。把這個轉過來,後面就順了。

兩種迴圈,先分清楚再動手

捷徑(Shortcuts)在 iOS / iPadOS 裡有兩個迴圈動作,長得很像,但用途完全不同,這也是新手最容易搞混的地方。

**『重複每個項目』(For Each)**是日常最常用的那一個。只要你手上是一份清單——相簿選出來的照片、資料夾裡撈出來的檔案、或一行一行的文字——它就會一項一項跑過去。跑的時候捷徑會自動給你一個魔法變數叫「重複項目」,代表「現在正在處理的這一個」,直接點就能用,不用自己存變數。這點我覺得是它最貼心的設計。

**『重複』(Repeat)**則是另一種思路:我不在乎對象是誰,就是要「做同一件事 N 次」。它配的魔法變數是「重複索引」,從 1 開始往上加,所以特別適合需要「第幾次」這個編號的場合,像是把檔案自動命名成 檔案_1、檔案_2 這種。

一個小提醒:這兩個動作的迴圈本體,結尾都是『結束重複』。加進去之後,標頭那行的文字會告訴你到底加到的是哪一種,建議養成看一眼的習慣,免得選錯了還在找問題。

第一個實例:把一整個資料夾的截圖加上日期前綴

假設你 iCloud 雲碟某個資料夾塞滿了截圖,想全部改成「2026-06-11_原檔名」的格式。三個動作就搞定。

開啟捷徑 App,右上角「+」開一個空白捷徑。先加『取得「捷徑」資料夾中的「檔案」』這個動作(名稱叫「取得檔案」),把資料夾指到 iCloud 雲碟裡你放截圖的那個;如果連子資料夾也要一起處理,記得把「遞迴」勾起來。

接著加『重複每個項目』,它會自動接上上一步撈到的「檔案」清單,這裡什麼都不用設。然後在迴圈本體裡放『重新命名檔案』——「新名稱」欄位點「+」選「文字」,先打上 2026-06-11_,緊接著在同一欄再點「+」,選魔法變數「重複項目」、屬性挑「名稱」(這是不含副檔名的部分)。最後把「不要更換副檔名」打開,這樣 .png、.jpg 才會原封不動保留。『結束重複』會自動補上,跑完就好了。

進階不想每天手動改日期?在重新命名之前先放一個『格式化日期』動作、格式填 `yyyy-MM-dd`,把結果存成一個變數,新名稱欄位再引用它。這樣明天、後天直接跑同一個捷徑,日期會自己跟上。

第二個實例:只壓縮大張照片再分享,小圖放過

這個情境在門市超常遇到:一次選了幾十張照片要傳給人,但只有大檔需要壓,小圖壓了反而糊。那就讓捷徑自己判斷。

先放『從「最近項目」相簿中選擇照片』,把「選擇多張」打開。再加『重複每個項目』、輸入剛選的「照片」清單。迴圈裡第一步是『取得「重複項目」的詳細資訊』,選「檔案大小」,存到一個變數,這裡就叫它 目前大小

然後是關鍵——加『如果』,輸入 目前大小、條件選「大於」、值填 2000000。這個數字是位元組(Bytes),2 MB 換算就是 2,000,000,別被吉位元組那種習慣騙了。條件成立的區塊內,放『轉換「重複項目」』、格式選 JPEG、品質滑桿拉到 60 到 70% 之間,畫質和檔案大小的平衡大概在這個區段。轉完緊接著加『加入變數』,變數命名為 壓縮結果清單

別忘了「否則」那一塊:同樣放一個『加入變數』壓縮結果清單,但這次輸入直接選魔法變數「重複項目」,意思是小圖原樣丟進去。接著『結束如果』、『結束重複』收尾,最後加『分享』、輸入選 壓縮結果清單 就完成。

這裡有個坑我一定要講,因為十個人有八個踩過:『加入變數』和『設定變數』完全不是同一件事。前者是把東西「附加」進清單,後者是每次都「覆蓋」。批次要收集很多筆結果,請務必用『加入變數』,不然你跑了一輪,最後手上只剩最後一張。

第三個實例:把多行文字解析成 JSON

這個偏進階,但學會了很萬用。假設剪貼簿裡有一份換行分隔、「產品名稱 TAB 價格」格式的清單:

iPhone 16 Pro	34900
MacBook Air M3	42900
iPad mini 7	15900

流程是這樣:先『取得剪貼簿』,再『以換行符號分割「剪貼簿」』,這樣每一行就變成清單裡的一項。加『重複每個項目』進迴圈,迴圈內用『以 Tab 分割「重複項目」』,會切出一個兩元素的小清單——第 1 項是名稱、第 2 項是價格。接著『取得清單第 1 項』存成 商品名稱、『取得清單第 2 項』存成 商品價格

然後加一個『文字』動作拼 JSON 片段:

{"name": "商品名稱", "price": 商品價格}

注意欄位裡的「商品名稱」「商品價格」要用魔法變數引用,不能打死成字串,不然每一筆都會一樣。拼好用『加入變數』收進 JSON行清單。跳出迴圈後,先『以換行符號合併「JSON行清單」』,再用一個『文字』把它包成完整陣列:

[
合併後的文字
]

最後『複製到剪貼簿』或『快速查看』預覽都行。坦白說,iOS 17 之後其實有更穩的做法——新增了「字典」(Dictionary)動作,用『設定字典值』直接建鍵值對,比手拼字串不容易出錯,後面要 GET/POST 給 API 也更順。資料量大、結構複雜的話,我會直接建議走字典這條路。

兩個大家最後都會問的問題

「迴圈跑到一半出錯,整個就停了,能不能讓它跳過繼續跑?」 能。在容易出錯的動作前面包一個『如果』做前置檢查,例如先確認「重複項目的檔案大小大於 0」才往下,否則就『加入變數』丟個空值跳過。iOS 17 沒有 try/catch 這種語法,但靠條件過濾能做到很接近的效果。另外像網路請求那種愛報錯的動作,記得設逾時,免得一直卡在那邊把整個迴圈拖死。

「迴圈裡可以再放迴圈嗎?」 可以,iOS 17 最多支援 3 層巢狀。但要小心:每一層都有自己的「重複項目」,最內層會蓋掉外層的。實務上的解法是——外層迴圈一開始,馬上用『設定變數』把外層「重複項目」另存一個名字,比如「外層項目」,內層要用到外層資料時引用這個,就不會打架。

捷徑這套東西,真正的門檻其實不在難,而在「願不願意把第一個迴圈搭出來」。搭過一次,你會發現很多每天重複的雜事都能交給它。如果你想當場把自己的需求搭起來看看效果,或者還在猶豫 iPhone、iPad 哪一台跑這些流程比較順手,歡迎來 選機小幫手 看看,或直接到店裡找我們,帶著你的實際場景一起試最快。

這篇對你有幫助嗎?
延伸閱讀

相關教學

為你精選

猜你喜歡

外觀
點綴色