Warung Bebas
Showing posts with label 命令. Show all posts
Showing posts with label 命令. Show all posts

Tuesday, April 27, 2010

命令提示字元介面語言一鍵轉換——Englishize Cmd

(Read in English)




englishize-cmd-1-result
「雙語的命令提示字元:上為應用 Englishize Cmd 之後(變成英文界面),下為恢復後(至原來的語言)。」



[2012-04-08] 更新:1.4a 版推出。修正了 "_lang_codes.txt"。自 v1.4 開始支持更多系統語言。
(如果你用的語言不受支持,請告知)



功能一覽





  1. 在英文和中文(或其他語言)間切換視窗指令介面


  2. 方便偏好英語介面的視窗系統管理員


  3. 無需登出;設定後即時生效。


  4. 包括還原工具。設定和回復都只是一按那麼簡單。


  5. 字元相容性比改變 DOS codepage 的方式更佳。


  6. 支援大部份語言和程式。用者可隨意增減。


  7. 需要系統管理員權限。它會自動詢問是否提升權限。(經網絡除外)


  8. 支援 Windows Vista/7 或以後。





為何需要





englishize-cmd-2-shortcut
「437 = 英文代碼」



最近有人在討論區問如何在中文 Windows 以英語顯示內置的命令列工具,因為對一些專業的系統管理員來說,命令列介面還是英文好用。人們分享各種方式,如改變 DOS codepage;在運行命令前輸入「chcp 437」 (437 = 英文代碼)。或者,創建一個捷徑指向 cmd.exe 和將其屬性內的「當前內碼表」設定設置為 437。




不過這兩種方法會令中文字元不能顯示(變為問號 ????)。另外前者每次都要輸入「chcp 437」(儘管可以在「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun」註冊表項內設定成自動這樣做),而後者則只限用於捷徑。為解決此問題,以下介紹的作法使用另一種原理。




對於命令列程式來說,中文或其他非英語版本的 Windows Vista 和 7 其實跟來就有英語和一種非英語的 MUI(多語言使用者介面),例如中文台灣(zh-TW)。這意味著如果我們不喜歡被本地化成中文的命令列介面,或者會有某種簡單作法能將其轉為英語而無需在區域選項(Regional Options)內切換然後重新登入。這種作法就算不是 Ultimate/Enterprise 版本也應沒關係。




englishize-cmd-3-ipconfig-2
「轉換字元的方法會令中文字變成問號。」




原理



經過 Sysinternals Process Monitor 進程監視器的調查,我注意到,每當 Windows 無法在 zh-TW 目錄下找到相應的 .exe.mui 檔案,它就會自動使用 en-US 目錄下的 .exe.mui 檔案。所以一個想法來:為什麼不重新命名(刪除都可,但不建議)zh-TW 下的 .exe.mui,以使到它自動回落,使用 en-US 下的 MUI?現在我可以證實這技巧是可行的,只是過程殊不簡單 -- 決定哪些系統檔可被重新命名、取消保護這些檔(因為它們都受 WRP 資源保護)、重新命名每一個命令列程式等等。於是對 Englishize Cmd 的需求來了。Englishize Cmd 是一個簡單的可自訂程式(批次處理指令檔)用以自動化這個繁厭的過程,方便以後在兩種語言間互相切換。




englishize-cmd-4-startup
「上:Englishize.bat;下:Restore.bat」


說明



「Englishize Cmd」帶有 4 個檔案




  1. 「Englishize.bat」將命令列工具從非英語變成英語。



  2. 「Restore.bat」恢復一切,回到原來的語言。



  3. englishize-cmd-5-docs
    「左:_files_to_process.txt;右:_lang_codes.txt。一些檔案並不存在。」



  4. 「_lang_codes.txt」是個可修改的列表,其中包含所有非英語語言的代碼。它包括大多數語言(如中、法、俄),但萬一你的語言不存在,把它添加然後 Englishize Cmd 便可支援你的系統。


  5. 「_files_to_process.txt」是個可修改的檔案名列表,其中包含所有會被轉換 MUI 的命令列程式。所有 Windows Vista 和 7 的命令列程式預設都已包括(實際上它包含更多沒有的命令,但這也沒關係,因為對不存在的命令它是起不了任何作用的。)如果不希望某些命令轉成英文,運行「Englishize.bat」之前就要將他們從這個名單中刪除。此外,雖然這份清單只包括命令列程式,你也可以添加 GUI(圖形化使用者介面)程式,例如把小畫家(mspaint.exe)加到「_files_to_process.txt」。這裡有一個問題,中文 Windows 僅得命令列程式是同時附帶英語和中文的 MUI,GUI 程式則預設只有中文,所以 en-US 下的 mspaint.exe.mui 預設是不存在的。直到用戶安裝英文 MUI,通過 Windows Update 或 Vistalizator(對於非-Ultimate/Enterprise Windows 用戶),GUI 程式方可被支援。






englishize-cmd-6-during-process-2
「有趣的是,在運行 Englishize.bat 時有一刻是會同時顯示兩種語言。」



Englishize Cmd 影片示範





Englishize Cmd 在設計時考慮到安全;為了避免造成系統問題,它不容許在 en-US 目錄找不到對應 MUI 時處理那個檔案。




建議



你有任何建議或臭蟲要報告嗎?請於下面回覆。




版本歷程 / 下載

















































版本 日期 更新內容 MD5
1.4a 20120408修正了上一版的 "_lang_codes.txt"。不應加上 en-XX 語言否則會連英文都會被停用。6793d377acd497643a9c762d3fed6c81
1.4 20120407改良了 "_lang_codes.txt"。現在應該支持所有系統語言。(如果你用的語言不受支持,請告知)dc458d3e02d72956a61021bb0d90c2ff
1.3 20100428增加提升權限詢問、視窗版本檢查2312bb99d93915a7645237dbb1de2191
1.2 20100420改善讀我檔案和一些程式碼b25aa93e43577b3209f4aa57d9966e60
1.1 20100416增加系統管理員身份檢查d4082b73326963ecf17f4801106bc371
1.0
20100401首個公開發行d8f0e80c6c6fc9f03629aab911f102ee




下載最新版 Englishize Cmd [或這裡]




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

















Share

















Thursday, September 10, 2009

簡化 IT 工作——八個 Windows 7 進階技巧


這篇文章原為 HKEPC 09 年活動「Windows 7 新功能、新發現」的參賽作品,後來加多四個技巧便成這篇文章。




1. 資源監視器 - Resource Monitor




Windows 7 的資源監視器被大幅增強,整合了同門 Sysinternals Process Explorer 不少進階功能。例如以往檔案如因被某些程式佔用而不能刪除,因不知道是哪個程式,我們非透過第三方軟體解決不可;現在可透過「搜尋控制代碼」(Associated Handles) 找出真凶。



Resource Monitor in Windows 7, Search Handle

技巧:在開始搜尋輸入「perfmon /res」或「resmon」可執行資源監視器





2. 電源設定工具 - PowerCfg



PowerCfg 是進階的電源設定工具,因指令煩多和沒需要,以往較少會用到,但 Windows 7 的 PowerCfg 新增有用的電源效率報告功能,主要用以分析軟硬體和周邊裝置能否配合省電模式運作 (如 Selective Suspend),以節省電費或提高手提電腦的續航力。例如報告中可以找到防礙 CPU 進入省電模式的裝置和驅動程式、在系統閒置時佔用資源過多的程式的詳細資料、所支援的睡眠模式等,但最有用的功能可能就是偵測電池充電足不足所標示的容量 - 隔一段時間再執行便可比較前後來得知電池的耗損情況。


Power Efficiency Report in Windows 7, PowerCfg Energy

技巧:存取功能的指令為「powercfg -energy」




3. 啟動修復選項 - Startup Repair



很多時就算知道只是小問題,當遇上電腦開機失敗的話 IT 人員都不得不走到用家電腦面前,因為電話中指示太麻煩。「啟動修復選項」是自 Vista 就有的一系列自動修復作業,放入安裝光碟執行程式後它便懂得診斷和解決。現在再不用光碟,這麼實用的功能終於首次內建於 Windows 的新安裝!以後當入不到 Windows,程式便自動執行,IT人員終於無須再「無事東奔西走或者講到口水乾了」。



Startup Repair in Windows 7


技巧 1:如欲停用功能,可用「bcdedit /deletevalue {current} recoveryenabled」

技巧 2:如欲將系統修復工具燒錄成可開機光碟片,可用「recdisc」





4. 開機選項設定工具 - BCDBoot



自 Vista 以來,Windows 改用 BCD 作為系統開機選項的格式,因為不再是純文字,要用 BCDEdit 工具才可編輯,不過並不簡單,例如以往若要將作業系統由一台機移到另一台作多重開機便要用 BCDEdit 輸入一大堆指令,但現在 Windows 7 新的 BCDBoot 工具只需一行指令,而且就算目的地完全沒有開機檔案,它也能一併將所需檔案抄過去並設定好。


BCDBoot


技巧:在 PE 用 ImageX 部署後,用「bcdboot /s」安裝開機檔在指定磁區





5. 部署影像維護和管理工具 - DISM


DISM (Deployment Image Servicing and Management) 是結合舊版 WAIK (Windows Automated Installation Kit) 內多種工具再把離線及在線設置 Windows 的功能大幅加強後的一體化管理工具,首次內建於 Windows。以往慣常使用 Ghost 的我們若要更新 .gho 影像檔內 Windows 的 Service Pack 或者安裝驅動程式等,我們都必須將影像檔內容完全「倒」出來,登入其 Windows 才能進行設置,現在我們只需使用 DISM 掛載 ImageX 的 .wim 影像檔,利用其離線設置功能便可達成更改版本/授權碼、新增移除驅動程式/補丁/Windows 元件、設置無人值守安裝、設置介面語言/時區等等。完成後,只需卸載 .wim 並指示儲存變更即可。


除了.wim 外亦可使用其它離線 Windows 作來源,亦可使用 Diskpart 掛載 VHD,只要其中的 Windows 為 Vista SP1 或以上便可。(但 Windows 7 或 Server 2008 R2 才能支援 DISM 的所有功能)




PEImg, DISM

技巧:可使用 DISM /Online /Add-Package /PackagePath 指令
在非旗艦版或企業版下安裝語言包。(詳情)


Saturday, September 5, 2009

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

Click here for English version of this article

您是否在 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






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

















Share

















 

wander-sick Copyright © 2012 Fast Loading -- Powered by Blogger