若要在 Windows 上為每一行加入前綴,可以把文字貼到瀏覽器版的工具中,在你想加在每一行前面的前綴欄位輸入內容,選擇是否要保留空白行不變,然後在一分鐘以內下載產生的檔案,檔案格式為 UTF-8 TXT。這個工具 Add Prefix and Suffix to Lines 最高可處理 1,000,000 個字元,可辨識 Windows 的 CRLF 行尾,保留每一行的順序與原始內容,並在每行前後串接字面意義的前綴和後綴,不會把標點符號當作正規表示式處理。整個處理流程都在瀏覽器中執行,因此不會上傳任何資料,而下載下來的檔案就是一個純 UTF-8 文字 Blob,不含位元組順序標記、不帶任何樣式,也不會自動加上引號。
當一個清單中的每一行都需要加上相同的字元時,Windows 使用者通常會選擇 Notepad、Notepad++、PowerShell,或是寫一支小腳本來處理。每一種做法雖然都可行,但也都伴隨著一些麻煩:Notepad 沒有內建的欄位編輯功能來加入任意前綴;Notepad++ 的巨集需要事先設定;PowerShell 必須正確處理反斜線和引號的跳脫規則;而 sed 預設並未隨 Windows 安裝。瀏覽器版的工具則完全跳過這些限制,可直接接受從 Notepad 或 Word 貼上的文字,並產生一個可以存到磁碟任何位置的檔案。

為何瀏覽器工具適合 Windows 的工作流程
Windows 上的文字通常帶有 CRLF 行尾符號 — 也就是一個歸位字元(CR)接著一個換行字元(LF)的兩個字元序列,Notepad 與許多 Windows 應用程式預設就是用這種格式儲存。如果你把 CRLF 的文字貼進只以 LF 切行的工具,就可能在每個項目結尾留下一個看不見的歸位字元,進而破壞後續的 SQL、CSV 或日誌解析器。Add Prefix and Suffix to Lines 工具會同時以 CRLF、CR 和 LF 來切行,讓輸入的讀取方式符合 Windows 使用者的預期,輸出時則改用 LF 來串接,使最終檔案具備可攜性且行為可預期。
這個工具同時也避免了腳本式方案在 Windows 上最常遇到的陷阱。PowerShell 的 -replace 運算子會把它的模式字串當作正規表示式處理,因此像 $env: 或 C:\Logs\ 這類字面前綴,必須小心地進行跳脫,以免意外展開成擷取群組。在這個工具中,前綴會被當作字面字串處理,所以中括號、反斜線、錢號、星號、小括號和引號都會原樣插入。這種可預測性在處理那些對 Markdown、HTML 或 shell 註解具有特殊意義的字元時同樣很有幫助。
如何在 Windows 上為每一行加入前綴
- 在 Chrome、Edge、Firefox 或任何現代的 Windows 瀏覽器中開啟 Add Prefix and Suffix to Lines。不需要安裝任何東西。
- 把文字貼進輸入區,或直接輸入每一行。你可以從 Notepad、Notepad++、Word、用文字編輯器開啟的 CSV 檔案,或任何來源貼上 — 這個工具最高可接受 1,000,000 個字元。
- 在前綴欄位輸入你的前綴。如果只需要前綴,可將後綴欄位留空;想同時加上裝飾則填滿兩個欄位;只要尾端的標點符號則只填後綴欄位。每個欄位最高可接受 200 個 Unicode 字元。
- 選擇空行的處理方式。如果希望空白行和只含空白的行維持原樣,就啟用「保留空白行不變」的選項;如果想為每一行都加入裝飾,包含空白或只含空格的行在內,則關閉此選項。
- 點擊「產生」。精確的轉換結果會顯示在預覽區中,保留所有空格和換行,允許視覺上的長行自動換行,但不會在檔案中插入實際的換行字元。
- 檢視預覽結果,然後將結果下載為 UTF-8 TXT 檔。下載的檔案內容是精確產生的字串,而不是複製的渲染後 HTML。
如果你在 Windows 上偏好更接近編輯器的做法,這份指南 Add a Prefix to All Lines in Notepad++ and Online 會並排展示 Notepad++ 中的欄位編輯方法以及瀏覽器版的替代方案。
Windows 的 CRLF 和尾端換行如何被處理
由 Notepad 儲存的 Windows 檔案,傳統上會在每一行結尾加上歸位字元加上換行字元(CRLF)。當這個檔案被貼進瀏覽器時,這兩個字元會被辨識為單一的行界線。輸出時則只使用 LF 來串接,因此最終的 TXT 無論被送到 Windows、macOS 還是 Linux 的下游系統,行為都會是一致的。
輸入結尾的換行字元會額外產生一個空白的邏輯行。當「保留空白行不變」選項關閉時,這個最後一行會被加上前綴和後綴;當選項開啟時,則會保持空白。這是刻意的設計:尾端的換行代表輸入中的一個真實界線,如果在背地裡悄悄把它去掉,就會改變檔案的結構。修改輸入、前綴、後綴或空行設定時,先前的結果會被清除,其下載 URL 也會失效,如此一來,在控制項已經描述了不同的輸出之後,舊的檔案就不會仍然可供下載。
工具會保留什麼、又會改變什麼
這個轉換刻意做得範圍很窄。下面的表格根據文件化的行為,摘要列出輸入的哪些屬性會被原封不動地保留,哪些會受到你所提供的前綴和後綴影響。
| 輸入的面向 | 會發生什麼事 |
|---|---|
| 行的順序 | 保留;行會依原本的順序回傳。 |
| 行的原始內容 | 保留;不會修剪、改變大小寫、去重或排序。 |
| 行內的空格與 tab | 保留;行內的內容不會被合併或刪除。 |
| 輸出的行尾 | 統一規範為 LF,無論輸入是 CRLF、CR 還是 LF。 |
| 輸入的尾端換行 | 會變成額外的一個項目,根據空行設定決定加上裝飾或保持空白。 |
| 空白行或只含空白的行 | 當空行選項關閉時會被加上裝飾;當選項開啟時則原封不動地回傳。 |
| 前綴與後綴的字元 | 以字面意義插入;中括號、反斜線、錢號和星號都不具有特殊意義。 |
| 下載檔案的格式 | UTF-8 純文字,不含位元組順序標記、不帶樣式,沒有 CSV 或試算表的引號。 |
常見需要前綴的 Windows 工作
有幾個例行的 Windows 文字工作可以直接對應到字面前綴與後綴的操作。在 PowerShell、批次檔或 SQL 中註解化一整段程式碼,只要在前面加上 #、REM 或 -- 就辦得到。要把從 Excel 複製過來的一整欄值轉成 SQL 的 IN 清單,只要把每一行用小括號和引號包起來就可以了,例如在開頭加上 ('、在結尾加上 ')。日誌行常常需要加上時間戳記或嚴重性標記,例如把 [INFO] 加在最前面;文件中的 shell 指令片段則會受益於加上 $ 提示符號,讓每一行清楚標示為互動式指令。
同一種做法也適用於 Markdown 的項目符號、HTML 清單項目,以及 CSV 的引號。用單引號或雙引號把識別字包起來、在每個項目結尾加上分號、以及將一段 YAML 統一縮排固定的空格數,這些都是字面上的附加字元。由於附加字元會照原樣插入,因此結果具可預測性,而且在存檔之前都可以先檢視。如果下游格式本身有跳脫規則 — 例如 JSON 字串需要對引號進行跳脫 — 就必須另外針對那個格式檢查或跳脫所產生的文字。
當任務超出字面前綴或後綴的範圍時,適合的工具就會跟著改變。若要加上 1.、2.、3. 等數字型前綴,請使用 Add Line Numbers。若要把同一個子字串替換為另一個,跨多行進行,請使用 Find and Replace。若要把一份清單轉成可直接貼上的 JSON 陣列、SQL IN 子句或 CSV 的一整列,請使用 Add Quotes to Each Line。Add Prefix and Suffix to Lines 工具則專注於在每一行的開頭、結尾,或兩端各加上字面文字這個狹隘的工作。
Windows 上的隱私與限制
裝飾性的處理完全在本機的瀏覽器分頁中進行:輸入的內容從不上傳到遠端伺服器,預覽是從記憶體中的字串產生,而下載檔案是由本機的 UTF-8 Blob 建立。用來組裝下載檔案的 Blob API 屬於標準瀏覽器環境的一部分,相關文件可在 MDN — Blob 找到。輸入上限為 1,000,000 個字元,以保持瀏覽器在面對大型轉換時的記憶體與渲染反應速度。每一個前綴和後綴最多 200 個 Unicode 字元,且兩者中至少要有一個不是空白,因為產出與輸入一模一樣的複本並沒有附加價值,還可能讓目前結果在視覺上與輸入難以區分。
表情符號與非拉丁文字都可使用,因為這個操作使用 JavaScript 字串,而產生的 Blob 會被標記為 UTF-8 純文字;至於每一個字元簇(grapheme cluster)實際顯示成什麼樣子,仍然取決於字型和下游編輯器。下載的檔案僅限純文字 — 不含位元組順序標記、沒有試算表引號、不附加來自檔名的前綴、也不會自動偵測分隔符號 — 因此在 Notepad、Notepad++、VS Code,或 PowerShell 的 Get-Content 指令中開啟時,結果都會一致。