stars
(c)

September 6, 2009

增強「命令提示字元」綠色版

(A native English version of this article is available here)

您是否在 USB 隨身碟存放了很多命令列工具?

Command-line tools

作為系統管理員,您可能要隨身備用一堆有用的命令列工具。每當使用時,您首先要插入 USB 隨身碟,在目標電腦啟動命令提示字元,然後瀏覽磁區,確定程式位置後「CD」進去,最後啟動它。但您無時無刻都在使用,而且當程式數量、子資料夾不斷增加,您開始想會否有更簡單的方法 - 那就是命令提示字元綠色版 

命令提示字元綠色版 (Command Prompt Portable) 是又一個來自 PortableApps.com 的綠色軟體,它給我們一個可隨意自訂的命令提示字元;其中一種最有用的應用是設置 PATH 路徑到任何需要的位置。我們只需編輯在 CommandPromptPortable\Data\Batch 一個名為 commandprompt.bat 的批次檔,把 PATH 路徑設置為 e.g. %~d0\CommandPromptPortable\Exe、Sysinternals 等等我們把程式所存放的地方,%~d0 將自動成為 USB 隨身碟的根目錄。那麼,無論在哪台電腦,只要一打開命令提示字元,我們就可以立刻使用所有指令了!所以,與其對其它電腦的設置感沮喪,我們其實可以把命令提示字元和其設置隨身。

再進一步,這是小弟的增強型命令提示字元便攜版 (配合 PStart 作為啟動器)。

Enhanced Command Prompt Portable, ECPP 1.0, PStart 放在 CommandPromptPortable\Exe 根目錄的可執行檔 (.exe .bat .cmd .vbs...) 顯示為 file1.exe file2.bat ... 而資料夾顯示為 [dir1] [dir2] ... 因為量多的關係,小弟喜歡把程式分組 - 放進不同的資料夾。而用了這個指令檔後,只需記得程式的名稱 (在任何一個資料夾內) 便可以直接輸入並執行它,避免了要先進入子資料夾,而且再不用編輯 commandprompt.bat 來增加新 PATH 路徑;這指令檔實現了為所有包含程式的子資料夾動態設置 PATH 的功能。
一個可自選的功能是,只有當資料夾包含程式時才附加到路徑;這意味著 PATH 總長較短,消耗較少的記憶體,搜尋速度更快,但缺點是需要額外處理,啟動速度較慢。如要啟用它,請參閱 "commandprompt.bat /?"。

下圖顯示資料夾和路徑的關係。請特別留意綠線;雖然 UnxUtils 內有很多資料夾,但唯有 bin 和 wbin 被追加到 PATH 中。那是因為只有該兩個資料夾包含程式。

Command-line, Path
程式地點可不用理會,但假若不記得指令的名稱連要輸入甚麼都不知道該怎辦?可以首先用 DirC 或 ListC 命令看看子資料夾裡面有什麼。

這例子輸出 [Microsoft] 和 [PnP] 裡面有什麼 - "listc microsoft pnp"

ListC, ECPP
或者,以 DirC 輸出 Dir /w 風格 - "dirc microsoft netcat"
預設情況下,只有可執行檔 (定義為 .exe .bat .cmd .vbs...) 會被顯示。


DirC, ECPP
功能概要:
  • 隨運行時顯示歡迎訊息,同時列出放在 USB 隨身碟 CommandPromptPortable\Exe 內的程式;根目錄的 (.exe .bat .cmd .vbs) 顯示為 file1.exe file2.bat... 資料夾顯示為 [folder1] [folder2]...
  • PATH 路徑隨每次運行自動更新 (以檢測新程式)
  • 再不用編輯 commandprompt.bat 來增加新路徑
  • 只有包含可執行檔的資料夾會附加到 PATH,以節省空間 (可自訂)
  • 把不同命令列程式分類,放到不同資料夾 (以避免溢位)
  • 運用 DirC.bat 和 ListC.bat 列出指定子資料夾 [folder] 內的可執行檔,從而簡單地得知有甚麼程式名稱能輸入,e.g. "listc linux windows" (或 dirc) 將顯示所有在 [Linux] 和 [Windows] 內的程式
  • 指令檔不依賴特定位置;可把命令提示字元放在任何地方使用。
設置範例:
ECPP sample setup
(註:只有在 "Data\Batch" 內的 scripts 是小弟製作的)

您可以下載我的「Enhanced Command Prompt Portable」指令檔連同幾個免費的命令列工具一起使用。
※ 從「這裡」下載 | MD5: 3930227f85901741c7c20911a92dca3c

歡迎用以下方式儲存或分享本文:


5 comments :

  1. 請問要怎麼使命令提示字元能執行子資料夾的程式
    可以給我載點嗎

    ReplyDelete
  2. @Ka Wui 抱歉,新版的載點暫時未能提供。有的話小弟會通知你。

    其實這指令檔的重點在這幾行,有興趣可以自行製作:

    set extentions=com exe bat cmd vbs vbe js jse wsf wsh msc
    for %%i in (%extentions%) do call set ext1=%%ext1%%"*.%%i"
    for /f "tokens=* usebackq" %%i in (`dir /s /b %ext1%`) do set record=%%~dpi

    尤其是第三行的 dir /s /b,那就是代表命令提示字元從子資料夾搜尋那堆 (com exe bat...) 程式檔

    ReplyDelete
  3. 請問有詳細的使用方法嗎?

    ReplyDelete
  4. @Kai Wu (噢。其實還欠缺加入 PATH 的程式碼)。與其要你自行製作,倒不如我將載點更新。現在可以下載了(請見內文)。謝謝~ (不過這個版本稍舊,功能較少,勝在較快)

    ReplyDelete
  5. 謝謝喔,這個功能很好用呢!

    ReplyDelete