🎮 盲杖、地城與黑小窗冒險:CMD / PowerShell 十大地城術語與 NVDA 報讀快速鍵

NOTE作者資訊 (Author Info)

冒險者,歡迎來到終端機地城的入口!請裝備好你的盲杖(NVDA 螢幕閱讀器),握緊鍵盤。

在上一次的冒險中,我們成功在電腦上完成了 agy 使魔的召喚儀式。然而,當我們站在這個漆黑、深邃的命令列地城(CMD / PowerShell 視窗)大門前時,許多剛踏入冒險世界的新手——特別是依賴 NVDA 螢幕閱讀器朗讀聲音來掌握地形的視障玩家,心頭總會湧起幾分不安:

請放下所有的焦慮,把胸口挺起來!命令列地城不僅一點都不危險,對於視障冒險者來說,它反而是整個 Windows 世界中最純粹、最聽話、朗讀體驗最極致的綠色探險通道!

今天,我們將把黑小窗徹底寫成一場文字 RPG 冒險,帶你掌握 NVDA 盲杖的聽覺探測技能,並解鎖十個在黑小窗地城裡橫著走的必殺指令!


🗡️ 第一關:心智重塑——把命令列想像成「純文字 RPG 地城探險」

在傳統的圖形介面(GUI)視窗中,明眼人像是靠著眼睛看地圖,用滑鼠點擊圖片資料夾來移動。 而當你踏入命令列介面(CLI)時,你就是在玩一款 100% 純文字的沉浸式 RPG 冒險遊戲!

在這個世界裡,你完全不需要滑鼠。你的鍵盤就是控制器,你輸入的每一行指令就是角色的動作與技能:

對於 NVDA 等螢幕閱讀器玩家來說,圖形介面充斥著無法朗讀的動態圖示與干擾聲音的視窗廣告。但在這場文字 RPG 冒險裡,所有的輸入與輸出都是 100% 乾淨的純文字流!朗讀軟體能精準、無偏差地把每一個字唸進你的耳朵裡,實現完全無障礙的探險體驗!


🛡️ 第二關:NVDA 盲杖技能組——地城視覺盲區的聽覺掃描術

在命令列地城中,NVDA 預設會在系統印出新文字或你敲擊鍵盤時自動發聲。但當系統輸出大量訊息、或者你想回頭確認剛剛印出的報錯細節時,你需要動用 NVDA 的「聽覺雷達」!

請將以下三組 NVDA 盲杖專用快速鍵記在你的冒險日誌中:

1. 聽覺雷達一:一鍵回報當前地城視窗標題與座標

2. 聽覺雷達二:審閱模式(Review Mode)——用鍵盤游標探測畫面的每一行文字

當大副或系統在終端機印出一長串幾百行的地城日誌時,你不需要滑鼠去拖曳滾動條。利用 NVDA 的審閱游標(Review Cursor),你可以像閱讀古老卷軸一樣,一行行、一字字地聽取螢幕上的歷史訊息:

3. 聽覺雷達三:地城報錯與情報一鍵複製術

當你在冒險中遇到系統報錯,想把螢幕上的錯誤訊息複製下來交給大副診斷時,請使用這套 NVDA 文字標記複製技能:

  1. 利用審閱游標移動到想開始複製的第一行開頭,按下 NVDA 鍵 + F9(設定選擇起點)。
  2. 移動審閱游標到想結束複製的最後一行結尾, NVDA 鍵 + F10連按兩次NVDA + F10 * 2,設定選擇終點並自動將範圍內的文字複製到剪貼簿)。
  3. 回到打字輸入框,按下 Ctrl + V,即可將錯誤情報完整貼給大副!

⚔️ 第三關:命令列十大必殺技能(CMD / PowerShell 通用地城咒語)

請將手放在鍵盤上,我們現在就來解鎖這十個能在黑小窗地城裡縱橫無阻的必殺指令: 在那之前請先看看: 進入cmd / powershell 介面,你可以按下 num(8) 應該會聽到 users > 這樣的東西2 在有 > 的地方,就是輸入指令的地方。

🧭 必殺一:GPS 定位咒語(pwd 查看當前座標)

在 PowerShell 中打入 pwd(Print Working Directory)並按 Enter,NVDA 會清楚唸出你目前踩在實體硬碟的哪一個資料夾路徑(例如:C:\ai pro\agy)。這就像是打開探險地圖確認自己的精確 GPS 座標。

🔍 必殺二:探索房間物品(lsdir

打入 ls(PowerShell)或 dir(CMD),系統會列出當前房間裡所有的檔案與子資料夾清單。配合 NVDA 的上一行/下一行審閱快速鍵,你可以逐一聽取房間裡的每一件裝備與目錄。

🚪 必殺三:跨越門檻進房(cd 資料夾名稱)與「鍵盤補完術」

想走進名為 brlt 的房間,打入 cd brlt 即可。 * 絕招:Tab 鍵自動補全(鍵盤補完術)!你根本不需要把昂長的資料夾名稱全打出來!你只需要打入 cd br,然後按下鍵盤上的 Tab 鍵,系統就會自動幫你把未打完的檔名補全成 cd brlt!這能完全避免拼字錯誤,對視障冒險者來說是極度強大的省力神器!

⬅️ 必殺四:退回上一層走廊(cd ..

打入 cd ..(請注意:cd 後面必須有一個空格,接著是兩個連續的句點),就能退回到上一級的走廊目錄。

🏠 必殺五:隨意門回城術(cd ~

打入 cd ~(波浪號),無論你在硬碟迷宮的最深處迷路到哪裡,按下 Enter 的瞬間,都能一秒傳送回你的玩家個人主目錄(Home Directory)。

📁 必殺六:原地建造新房間(mkdir 新資料夾名稱

例如打入 mkdir my-app,系統就會在當前位置立刻建造一個名為 my-app 的新資料夾空間。

🧹 必殺七:擦拭黑板魔法(clearcls

當螢幕上的文字太滿、太混亂,干擾到 NVDA 讀取時,打入 clear(PowerShell)或 cls(CMD),螢幕與 NVDA 的審閱緩衝區會在一秒內被擦得乾乾淨淨,讓你重新恢復專注。

⬆️ 必殺八:歷史咒語召喚術(Up Arrow 向上方向鍵)

不需要重複打字!在輸入框按下鍵盤的 向上方向鍵(Up Arrow),系統會依序召喚出你剛才打過的前幾條指令。找到想用的指令後直接按 Enter 就能再次施放!

⛔ 必殺九:緊急煞車中斷術(Ctrl + C

當某個程式跑卡住了、或者印出太長的無用文字時,按下 Ctrl + C,系統會立刻強制中斷當前運行的指令,把控制權搶回你的手上。

🚪 必殺十:優雅關閉地城門戶(exit

輸入 exit 並按 Enter,就能優雅地關閉當前的命令列視窗,完成本次地城探險。


🏆 第四關:冒險者實戰試煉與通關檢驗

恭喜你完成了地城技能的學習!在邁向下一座城堡之前,讓我們進行一次冒險者實戰檢驗:

命令列地城不再是不可逾越的黑色迷宮。它是你與大副溝通最直接、最純粹、最無障礙的探險通道!

現在,你已經擁有了地城地圖與 NVDA 盲杖技能。

下一堂課,我們將走進駕駛艙,看看大副能為你完成哪些超乎想像的炫酷任務!


👉 下一堂課:Lecture 01.5 駕駛艙熱血廣播:大副 agy 能幫你搞定的超炫任務全公開! 👉 回課程大綱:學習地圖

🔥 專家級深度思考與實戰挑戰 (Expert Challenge)

以下題目專為尋求真正硬核觀念與專家級實戰能力的學員設計。題目無法從講義表面抄寫解答,請嘗試獨立思考後再點擊展開解析。

❓ 挑戰 1:PowerShell 控制台虛擬緩衝區與 NVDA 報讀失焦 👉 點擊展開專家解析答案

【實戰情境問題】:當 NVDA 使用者在 PowerShell 中執行長日誌輸出的指令(如 `git log` 或 `npm test`)時,為什麼「控制台虛擬緩衝區 (Console Virtual Buffer)」有時會導致 NVDA 焦點失焦或重複報讀第一行?資深無障礙工程師會使用什麼管道 (Pipeline) 與 Paging 策略解決?

【鑑別點說明】:區分「只會按 Enter 的新手」與「懂 NVDA 控制台驅動 (Console Hook) 與 Win32 API 繪製原理的無障礙專家」。

【專家級解答與深度剖析】: PowerShell 預設的 Console Host 採用非同步異步刷新機制,當螢幕文字刷新速度超過 NVDA 的 Win32 Event Hook 捕捉速度時,控制台的 DOM 記憶體指標會發生 race condition,導致 NVDA 審閱游標跳回頂部。專家級解決方案包含:1. 加上 `| Out-Host` 或使用 `more` 進行分頁控制;2. 透過管道將流導向 cat 模式(`PAGER=cat`);3. 啟用 Windows Terminal 的 ConPTY(虛擬終端偽控制台)架構,讓 NVDA 能透過 UI Automation (UIA) 取得精確的即時動態事件流。

❓ 挑戰 2:管道符號與 Big5/CP950 雙位元組編碼爆頭案 👉 點擊展開專家解析答案

【實戰情境問題】:在使用命令列管道符號 `|` 將前一個指令的輸出傳給 AI 進行分析時(如 `dir | agy "分析"`),如果前一個指令產生了非 UTF-8 編碼(如 Windows 繁體中文預設的 CP950/Big5)字元,為什麼會導致 AI 解析崩潰?如何透過 `chcp 65001` 與位元組流解碼修正?

【鑑別點說明】:測試學員是否掌握字元編碼(Byte Stream to UTF-8 Decoding)在 CLI 自動化串接中的物理實質。

【專家級解答與深度剖析】: Windows CMD/PowerShell 預設程式頁(Code Page)為 CP950 (Big5),其繁體中文採用雙位元組(DBCS)編碼。當管道符號 `|` 將位元組串切分傳送給 Node.js 或 Python 撰寫的 CLI 工具時,若位元組剛好在繁體中文字的中間被切斷(如將 2 Bytes 切成一半),AI 的 UTF-8 解碼器會收到不合法的 Header Bit,拋出 `UnicodeDecodeError` 或產出 `` 亂碼。最佳作法是在執行前強制調用 `chcp 65001` 將控制台 Code Page 切換為 UTF-8,並在 Python 腳本中使用 `sys.stdin.reconfigure(encoding='utf-8')`。