2008-10-17

DOS 命令工具 - TCC LE

這套軟體 TCC LE (Take Command Console Lite),說實話一開始我也沒聽過,但如果說到它的前身,對我來講就很有淵源了。時間拉回 DOS 時代,當時都還是 Command Line Interface (CLI) 的時代,電腦的操作還要仰賴手動敲入一堆命令,一般工作都要「回到 DOS」、在黑底白字的環境下使用。當時主要用來處理和解譯命令的 Shell 程式,就是開機檔之一的 command.com。想當年就愛搞怪的我,偏偏就不愛用這個標準的 Shell,因為嫌它醜、太陽春、又占記憶體(尤其是那個要和 640KB 奮鬥的年代),當時發現另一套取代 command.com 好物:4dos.com,從此就愛不釋手了。除了它一開始就內建了 Doskey、能靠方向鍵顯示已經打過的命令,它還可以用 tab 鍵顯示「可執行檔」、甚至定義 Function 鍵增加各種熱鍵或外掛功能,另外一個特色就是「彩色」、它可以定義各種不同副檔名的檔案在 dir 時用顏色區分,加上還省記憶體等眾多好處,從 DOS 到 Win98 時代它都一直留在我電腦裡,作為我在 DOS 視窗敲命令的最好夥伴(也因為太過方便、不用敲幾個字元就可以執行命令,導致到現在、偷懶的我打字的速度一直都沒啥長進)。後來作業系統升級到 WinNT、2000 到 XP,DOS 視窗(正名應該叫「命令提示字元」)已經從 Shell 的角色變成了一個 Utility,讓比較進階的使用者透過命令或批次檔來快速、便利地執行單獨或一狗票的工作,我愛用的 4DOS 也升級成了 4NT,繼續默默地存在我電腦裡,用來取代系統內建的 cmd.exe。雖然 Doskey 現在也都被塞進 cmd,但像是命令的 alias、功能鍵組合、彩色的提示字元和檔案列表,還是沒有人能取代 4DOS/4NT 的地位。最近突然心血來潮想到、看看用了幾年的 4NT V4 還有沒有新版(或,開發的公司 JP Software 倒閉了沒),赫然發現這家十幾年的軟體公司居然還在,而且,4NT 現在也「消滅」了(最後版本 8.x)、改了一個新的名字叫做 「Take Command」,甚至還加了個 GUI、支援分頁,骨子裡當然還是 Command Line(不過這個完整版本是要錢的),而我熟悉的 4NT,變身成為 Free 的 TCC LE,好哇!既然不用錢又是最新版,那就把電腦裡用了多年的 4NT 換掉吧!

到官網下載安裝完,一執行,哈~和「未經人事」的 4NT 一模一樣(和 cmd 也差不多),當然要調整一下才見威力啊!我直接拿 4NT 用的 4Start.btm (此為 4NT 一打開便會執行的設定檔,批次檔格式和語法,有點像以前的 autoexec.bat),沒想到直接就能用,我熟悉的彩色提示字元和檔案列表馬上就出來、習慣的快速鍵也有作用,這樣就打完收工了嗎?當然不,順手按了下 F1 跳出 Help 文件,仔細端詳到底有哪些設定。首先,像是顏色和按鍵定義等設定,文件是說要指定一個 ini 檔(有預設檔名),然後把設定貼進去,但我習慣去用類似批次檔的方式在開啟視窗前執行搞定,所以我把設定寫入 tcstart.btm (這個是預設開啟 TCC 前會執行的批次檔):

tcstart.btm
@ECHO OFF
prompt `%@exec[@color Bright Yellow on blue & echos [ & color Bright Cyan on Blue & echos %_winuser & color Bright Red on Blue & echos @ & color Bright Cyan on Blue & echos %_winname & color Bright Yellow on Blue & echos ] & color Bright Yellow on Black & echos : & color Bright Green on Black & echo (%@dosmem[K]K) & color Bright White on Black & echos [%_cwd]: & color White on Black]`
option //ColorDir= chm doc dot rtf wri ppt xls mdb pdf mht:Bright Green; me txt 1st lst frm log nfo diz:Green; bat btm:Yellow;bak tmp diz ms:BRI CYA; com exe:Bright Yellow; ape au mid fla flac wav mp3 m3u ogg ra wma:Magenta; avi flv mepg mpg mkv mp4 mov ogm vob rm rmvb wmv:Bright Magenta; gif jpg bmp png pic jpeg tif:Bright Red; pif ico cur rc fon ttf:Red; zip arj tar tgz lzh ddi rar a0* r0* 00* u0* cab ace msi uu uue :Bright Cyan;c cpp java h pl asp htm php js bas xml html lib:Cyan; css cfg dat ini inf key reg:Bright Blue; sys dll cpl lib:Blue; dirs:BRI WHI;*:WHI
option //EditMode=Insert
title DOS Prompt
alias /r %@path[%comspec]Alias

簡單解釋一下設定內容。第一行寫過批次檔的都知道,主要是讓後面執行的命令結果不要 echo 到畫面上。第二行是搞個華麗彩色的提示符號,除了所在的路徑外,內容會顯示主機名稱、登入的使用者甚至目前可用的記憶體。第三行哩,就是所謂的 Color Dir,就是根據副檔名、在 dir 時根據檔案類型用不同顏色作區分。第四行,是讓開出來的 DOS 視窗變成是 Insert mode (不然預設是 Overstrike 的取代模式)。第五行,是更改 Dos 視窗的標題文字(這純粹是改爽的,不然預設叫 TCC LE)。最後一行,是導入 alias(別名)的外部檔案(這個檔名 Alias 預設沒有,要自己建立)。這個別名的主要作用,就是把你常用的 DOS 命令,用自己習慣或更短的字去取代,用來更快地輸入。舉個例子,像我愛用 Linux 命令,dir 我反而習慣敲 ls,我就可以在 alias 裡面建立一筆 ls = dir 之類的紀錄(只要在檔案裡加一行類似「別名 命令」的紀錄,中間用空白隔開、不是用等號),其他像是 cp = copy、rm = del、cat = type 之類的,都可以加入 alias 來加速命令輸入(這樣可以體會,為什麼我打字速度一直快不了吧,命令都一兩個字元就敲完、檔名都用 tab 或 doskey 去引導...)。

設定好後執行 TCC LE、開出一個 DOS 視窗,看看設定是不是生效了(最少,要有花花綠綠的 dir 結果),OK 的話直接執行 tccbatch.btm ,該命令的作用是幫你設定檔案關聯(在 TCC 下,.bat = .btm = .cmd,指定以後這種檔案副檔名直接連結用 TCC LE 開啟),關聯建好再執行 tcchere.btm (可以直接敲命令、如果關聯建好也可以用滑鼠直接點這個圖示執行),它的作用就是幫你加入一筆登錄檔紀錄,如果想要在某目錄或磁碟機裡下 DOS 命令,在該目錄壓滑鼠右鍵就可以直接跳出 TCC LE、直接下命令(不用再用 cd 去切換磁碟機和目錄位置)。

深入一點來看 TCC LE 的用途吧!從上面 tcstart.btm 的範例有沒有看出端倪?是的,TCC LE 環境下多了很多自訂的函式、命令和變數(像是 %@dosmem[K] 用來顯示目前的記憶體空間、%_winuser 顯示目前登入者名稱,看 Help 說明還有好多好多),這些玩意都可以用在批次檔裡,所以如果要批次去執行一堆命令組合的 Script 檔,包括流程控制和變數引用,和寫程式一樣,將有所向無敵的彈性!聽不懂?舉個例子好了,如果想寫個批次檔、去檢查我暫存檔目錄的空間大小,當大於 1MB 時提醒我、如果低於 1MB 時就算了。傳統 .bat 的批次檔很難做到,更別說 GUI 的 Windows 環境,除非你找一個監視目錄空間大小還能發警告的軟體,不然只能不定時手動來查(目錄上點右鍵、內容)。可是有了 TCC LE,你只要寫個批次檔,內容就只有一行:

%@IF[%@filesize[c:\temp\*.* /s]>1000000,beep|msgbox OK "Warning" 目錄空間超過1MB,現在是 %@filesize[c:\temp\*.* /s] bytes 了!]

不管是手動還是放到 schedule 裡定時執行,跑一下就能搞定了!其中像是 %@filesize[] (檢查目錄空間大小的變數函數)、beep("嗶"一聲,以前 DOS 有、現在 cmd 拿掉了)、msgbox(跳出 Message Box、還能指定操作和樣式),就像是一般寫程式可以呼叫的函式和系統變數,搭配流程控制(IF ELSE 判斷、迴圈),批次檔能做的事情就有無限可能了!(玩得深入的話,這應該是 IT/MIS 的好幫手~)

正因 Command Line 環境的快速、便利、節省資源,即使現在電腦操作的主流早已變成 GUI,我始終愛用黑底白字的文字命令介面(所以我 Blog 的風格仍愛用黑底白字的主題、架站也愛用 shell 模式操作介面的 Linux),很多狀況,即使圖形介面能做,我還是覺得開個 DOS 視窗處理才是王道(像是查 IP -> ipconfig、測試網路 -> ping 之類的)。巧的是,現在敝公司關於我們自己 CLI 公用程式的產品規格和命令格式,也是我負責制訂和維護的,它快速反應和批次執行的特點甚至還能夠當 API 呼叫,對產品簡化操作和進階應用都有很大的功勞。剛好趁這個機會把 4NT 換用 Free 的 TCC LE,搜尋一下網路上又沒有這個軟體的介紹和設定文章,這次就順便整理設定心得記錄下來囉~

回應: 2

匿名 提到...

very nice share I also like console :-D

LIAR 提到...

我也是一直捨棄不了DOS,也特愛黑底白字介面,不管XP還是browser也是強制黑底白,有人叫我這是永夜。

沒想到還有這種軟體,不過當年DOS的一些設定我也忘的很嚴重(其實是一開始就沒學好XD),目前只剩下Command-line或是寫batch時會用到,看到*.btm的內容,又讓我開始隱隱作痛....

張貼留言

歡迎隨便亂哈啦留言或發表意見,不過要理性不做人身攻擊~匿名的朋友得到回應的速度會比較慢喔~
請注意發問相關的禮貌和規矩,不當留言、和本文無關的回應可能會被直接刪除無視喔!