Files
ETTerms/README.md
T
etwen 2bfb2c6575 feat: initial release v0.1.0
- KKTerm-style UI: Activity Rail, Connection Sidebar, Tabbed Workspace
- Serial Port connection (System.IO.Ports)
- SSH connection (SSH.NET, password/key/keyboard-interactive)
- Local Shell via Windows ConPTY (PowerShell/Bash/Cmd)
- VT100/ANSI terminal rendering (owner-drawn, double-buffered)
- TTL script engine: send, sendln, wait, pause, timeout, if/while, messagebox
- Group execution: waitall, sendlnall, sendlngroup (Barrier sync)
- Run All / Run Group toolbar buttons
- SFTP file browser sidebar (SSH.NET SftpClient)
- PDU control via SNMP (pduconnect/pductrl commands)
- Settings: Terminal prefs, Shell config, PDU monitoring
- About page with changelog
- AppSettings persisted to %LocalAppData%\ETTerms\
- Dark theme throughout (KKTerm purple accent)
2026-06-03 17:09:55 +08:00

44 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ETTerms
原生 Windows 終端機工作台(C# .NET 8 WinForms),支援 **SSH****Serial Port** 連線,
並內建從 MyTeraTerm 移植的 **TTL 腳本引擎**做自動化。單機、無雲、無登入系統。
詳細架構見 [ARCHITECTURE.md](ARCHITECTURE.md)。
## 建置 / 執行
```powershell
dotnet build
dotnet run --project src\ETTerms\ETTerms.csproj
```
## TTL 腳本
在任一連線分頁頂部的腳本列按 **▶ Script** 載入 `.ttl` 對該連線執行;左側狀態列即時顯示
執行到的行號與指令,**■ Stop** 可中止。完整語法與範例見
[docs/ttl-script-reference.md](docs/ttl-script-reference.md),範例腳本在 `tools/scripts/`
### 目前支援的指令
| 指令 | 說明 |
|------|------|
| `send '文字'` | 送出文字(不加換行) |
| `sendln '文字'` | 送出文字並附加 `\r\n` |
| `wait '字串'` | 一直等到接收緩衝出現該字串才往下(預設無限等待,可按 Stop 取消);命中後 `result=1` |
| `flushrecv` | 清空接收緩衝區 |
| `pause 秒數` | 暫停 N 秒(可被 Stop 中止) |
| `timeout = 秒數` | 設定 `wait` 逾時秒數;`0`=無限等待,`N>0` 超時會中止腳本並報錯 |
| `if … then` / `elseif … then` / `else` / `endif` | 條件分支(可巢狀) |
| `while …` / `endwhile` | 迴圈(可巢狀,可被 Stop 中止) |
| `名稱 = 值` | 變數指派;支援 `+ - * /` 整數運算與字串;內建變數 `result` |
| `logopen '檔名'` | 開啟 log 檔(覆寫) |
| `logwrite '文字'` | 寫一行到 log |
| `logclose` | 關閉 log(腳本結束自動關閉) |
| `messagebox '訊息'` | 跳出對話框(會顯示在最上層) |
| `; 註解` | 行內註解(`;` 之後到行尾) |
| `:label` | 標籤行(會被略過) |
**條件運算子**`if` / `elseif` / `while`):`>=` `<=` `>` `<` `==` `!=` `=`,或無運算子(非零為真)。
> `pductrl` / `pduconnect`SNMP PDU 控制)屬 Phase 7,目前尚未支援。