史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-08-12, 10:57 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Windows 2000/XP/.NET 指令行大揭秘

雖然Win2000已斷然拋棄了DOS,但仍然提供對指令行控制台的支持。其指令行不少指令在用法上與Win9x的DOS指令相似,但它們的參數、功能、執行環境等卻有了很大的不同,有關指令已經不再是16位程序,而且有些指令還與圖形界面渾然一體,甚至有些指令還能直接訪問註冊表信息。因此我們應當將Win2000的指令行控制台看作是圖形界面不可或缺的補充。

1.位置及地位特殊
指令行程序已經不專門用Command目錄存放,而是放在32位系統檔案的倉庫重地——Win2000安裝目錄下的system32子目錄中,由此可知Win2000的指令行指令已經不再是系統的「小妾」而是被納為「正房」,而且通過檢視system32\dllcache目錄可知,Win2000還將它們列入了受保護的系統檔案之列,一旦system32目錄中的指令行指令受損,就用該dllcache目錄中的制作備份隨即恢復;當然由於Win2000是脫胎於WinNT,所以指令行使用主程序已經不是Win9x時代的command.com,而是類似於NT下的cmd.exe。

2.一些指令只能通過指令行直接執行
如Win9x中的系統檔案掃瞄器sfc.exe是一個Windows風格的對話視窗界面,而在Win2000中的這條指令卻必需在指令行狀態手工輸入有關參數才能按要求執行,而執行時又是標準的圖形界面(如圖1)。
3.指令行視窗的使用與以前大不相同
1複製、貼上操作不同。在視窗狀態下,已經不再像Win9x的DOS視窗那樣有一條工作列,因此不少人發現無法在Win2000的指令行視窗中進行複製等操作,其實Win2000的指令行視窗是支持視窗內容的選定、複製、貼上等操作的,但有關指令卻給隱藏了起來。用滑鼠對視窗內容的直接操作只能夠是選取,即按下滑鼠左鍵移到時其內容會反白顯示,如果再按CTRL+C指令則無法將選取內容複製到剪貼板,而必須在視窗的標題欄上點擊滑鼠右鍵,然後選項「編輯」,這時才就會看到有關複製、貼上等操作指令的功能表(如圖2)。
2可以前後瀏覽每一步操作螢幕所顯示的內容。這在全螢幕幕狀態下是不行的,必需使用Alt+Enter鍵切換到視窗狀態,這時視窗右側會出現一個捲軸,移到捲軸就可前後任意瀏覽了,但如操作的顯示結果太多,則超過記憶體緩衝的內容會按照FIFO(First in First out,先進先出)原則自動丟棄,使用cls指令後可以同時清除螢幕及緩衝區的內容。

4.增加了大量快捷功能鍵和強大方便的類doskey功能
Win2000的指令行狀態下,通過mem/c看不到記憶體中自動載入doskey.exe指令的跡象,但的確具備極強大的類似傳統的doskey的功能,比如:
PageUp、PageDown:重新使用最近的兩條指令
↑↓:在歷史指令中按先後順序逐條重新使用指令;
←→:在指令行移動游標,可以對已經輸入的指令行進行編輯;
Insert:切換指令行編輯的插入與改寫狀態;
Home、End:快速移動游標到指令行的開頭或結尾;
Delete:刪除游標後面的字串;
Enter:複製視窗內選定的內容(用之取代CTRL+C指令);
F7:顯示歷史指令列表,可從列表中方便地選取曾經使用過的指令;
F9:輸入指令號碼功能,直接輸入歷史指令的編號就可直接使用該指令。
其它從F1∼F9鍵都分別定義了不同的功能,具體操作時一試便知。

5.對系統已掛接的碼表輸入法的直接支持
以前Win9x的DOS命令提示字元下要顯示和輸入漢字,必須單獨啟動中文輸入法,如PDOS95或UCDOS等其它漢字系統,在Win2000的Cmd.exe指令行下已經可以直接顯示漢字,並可以按圖形界面完全相同的熱鍵直接使用系統中已經安裝的各種碼表輸入法,如Ctrl+Shift切換輸入法,Ctrl+Space切換輸入法開關,Shift+Space切換全形與半角狀態,Ctrl+.切換中英文標點等,使用很方便;不過,該指令行下的輸入法只能在指令行進行輸入,比如開啟了一個Edit編輯器,輸入法就不起作用了,這不能不說是一個很大的遺憾!

6.新增多條內部指令
Color:設定預設的控制台前景和背景顏色。我們再也不必羨慕其它操作系統豐富的控制台顏色設定指令了!
用法:Color [attr] 其中attr為指定控制台輸出的顏色內容
顏色內容由兩個十六進制數字指定—— 第一個為背景,第二個則為前景。每個數字可以為以下任何值之一:
如果沒有給定任何參數,該指令會將顏色還原到CMD.EXE啟動時的顏色。這個值來自當前控制台視窗、/T 指令行指令選項或DefaultColor註冊表值。
如果用相同的前景和背景顏色來執行Color指令,Color指令會將ErrorLevel設定為1。
例如: "Color fc" 在亮白色上產生亮紅色,試著輸入一個「Color 02」,哈哈……你的螢幕的顯示變成了黑底綠字,再也不是一成不變的黑底白字了。
Pushd:儲存當前目錄以供Popd指令使用,然後改到指定的目錄。
用法:Pushd [path | ..] 其中path為指定要成為當前目錄的目錄。
如果指令副檔名被啟用,除了一般驅動器號和路徑,Pushd指令還接受網路路徑。如果指定了網路路徑,Pushd將新增一個指向指定網路資源的臨時驅動器號,然後再用剛定義的驅動器號改變當前的驅動器和目錄。可以從Z:往下分配臨時驅動器號,使用找到的第一個沒有用過的驅動器號。
Popd:指令選項到儲存在Pushd指令裡的目錄。
如果指令副檔名被啟用,從推目錄堆棧Popd驅動器時,Popd指令會刪除Pushd新增的臨時驅動器號。
SetLocal:開始批次處理文件中環境改動的本機化操作。在執行SetLocal之後所做的環境改動只限於批次處理文件。要還原原先的設定,必須執行EndLocal。達到批次處理文件結尾時,對於該批次處理文件的每個尚未執行的SetLocal指令,都會有一個隱含的EndLocal被執行。
Assoc:顯示或修改文件副檔名關聯
用法:Assoc [.ext[=[fileType]]]
其中.ext指定跟檔案類型關聯的文件副檔名,
FileType 指定跟文件副檔名關聯的檔案類型。
鍵入Assoc而不帶參數,顯示當前文件關聯。如果只用文件副檔名使用Assoc,則顯示那個文件副檔名的當前文件關聯。如果不為檔案類型指定任何參數,指令會刪除文件副檔名的關聯。
例如:
Assoc .pl=PerlScript
Ftype PerlScript=perl.exe %1 %*
允許你啟用以下Perl指令碼:
script.pl 1 2 3
如果不想鍵入副檔名,則鍵入以下字串串:
set PATHEXT=.pl;%PATHEXT%
被啟動的指令碼如下:
script 1 2 3

7.Cmd.exe更加複雜、強大的指令行參數
Cmd.exe有很多指令行參數,具體情況如下:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [ [/S] [/C | /K] string]
/C 執行字串串指定的指令然後中斷;
/K 執行字串串指定的指令但保留;
/S 在 /C 或 /K 後修改字串串處理;
/Q 關閉回應;
/D 從註冊表中停用執行AutoRun指令;
/A 使向內部管道或文件指令的輸出成為ANSI;
/U 使向內部管道或文件指令的輸出成為Unicode
/T:fg 設定前景/背景顏色(詳細資料,請見 Color /?);
/E:ON 啟用指令擴展;
/E:OFF 停用指令擴展;
/F:ON 啟用文件和目錄名稱完成字串;
/F:OFF 停用文件和目錄名稱完成字串;
/V:ON 將c作為定界符啟動延緩環境變數擴展。
/V:OFF 停用延緩的環境擴展。
請注意,如果字串串有引號,可以接受用指令分隔符「&&」隔開的多個指令。並且,由於相容原因,/X與/E:ON相同,/Y與/E:OFF相同,並且/R與/C相同。忽略任何其它指令選項。
如果指定了/C或/K,指令選項後的指令行其餘部分將作為指令行處理,在這種情況下,會使用下列邏輯處理引號字串("):
(1)如果符合下列所有條件,那麼在指令行上的引號字串將被保留:
不帶 /S 指令選項;
整整兩個引號字串;
在兩個引號字串之間沒有特殊字串,特殊字串為下列中的一個: <>()@^|;
在兩個引號字串之間有至少一個空白字串;
在兩個引號字串之間有至少一個可執行文件的名稱。
(2)否則,老辦法是,看第一個字串是否是一個引號字串,如果是,捨去開頭的字串並刪除指令行上 的最後一個引號字串,保留最後一個引號字串之後的文字。如果/D未在指令行上被指定,當CMD.EXE開始時,它會尋找以下REG_SZ/REG_EXPAND_SZ註冊表變數。如果其中一個或兩個都存在,這兩個變數會先被執行。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
指令擴展按預設值是啟用的。你也可以使用 /E:OFF,為某一特定使用而停用擴展。你可以在用戶登入會話上啟用或停用cmd.exe所有使用的擴展,這要通過設定使用Regedit32.exe的註冊表中的一個或兩個REG_DWORD值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions到0x1或0x0。用戶特定設定比機器設定有優先權。指令行指令選項比註冊表設定有優先權。
指令行擴展包括對下列指令所做的更改和增加:
Del或Erase、Color、CD或ChDir、MD或MkDir、Prompt、Pushd、Popd、Set、SetLocal、EndLocal、IF、For、Call、Shift、Goto、Start(同時包括對外部指令使用所做的更改)、Assoc、Ftype。
有關詳細資料,請鍵入「HELP 指令名」。
延遲變數環境擴展不按預設值啟用。你可以用/V:ON或 /V:OFF指令選項,為CMD.EXE的某個使用而啟用或停用延遲環境變數擴充。你可以在電腦上或用戶登入會話上啟用或停用CMD.EXE所有使用的完成,這要通過設定使用Regedit32.exe的註冊表中的一個或兩個REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion到0x1或0x0。用戶特定設定比機器設定有優先權。指令行指令選項比註冊表設定有優先權。
如果延遲環境變數擴充被啟用,驚歎號字串可在執行時間,被用來替代一個環境變數的數值。
文件和目錄名完成不按預設值啟用。你可以用/F:ON或/F:OFF指令選項,為cmd.exe的某個使用而啟用或停用檔案名完成。你可以在電腦上或用戶登入會話上啟用或停用cmd.exe所有使用的完成,這要通過設定使用Regedit32.exe 的註冊表中的一個或兩個REG_DWORD值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
由一個控制字串的十六進制值作為一個特定參數(例如,0x4是Ctrl-D,0x6是 Ctrl-F)。用戶特定設定優先於機器設定。指令行指令選項優先於註冊表設定。
如果完成是用/F:ON指令選項啟用的,兩個要使用的控制符是:目錄名字完成用Ctrl-D,檔案名完成用Ctrl-F。要停用註冊表中的某個字串,請用空格(0x20)的數值,因為此字串不是控制字串。
如果鍵入兩個控制字串中的一個,完成會被使用。完成功能將路徑字串長帶到游標的左邊,如果沒有萬用字元,將萬用字元附加到左邊,並建立相符的路徑列表。然後,顯示第一個相符的路徑。如果沒有相符的路徑,則發出嘟嘟聲,不影響顯示。之後,重複按同一個控制字串會循環顯示相符路徑的列表。將 Shift 鍵跟控制字串同時按下,會倒著顯示列表。如果對該行進行了任何編輯,並再次按下控制字串,儲存的相符路徑的列表會被丟棄,新的會被產生。如果在文件和目錄名完成之間指令選項,會發生同樣現象。兩個控制字串之間的唯一區別是文件完成字串符合文件和目錄名,而目錄完成字串只符合目錄名。如果文件完成被用於內裝式目錄指令(CD、MD或RD),就會使用目錄完成。
將引號用相符路徑括起來,完成程式碼可以正確處理含有空格或其它特殊字串的檔案名。同時,如果制作備份,然後從行內使用文件完成,完成被使用是位於游標右方的文字會被丟棄。
編者按:前邊講了這麼多,主要是從原理上介紹了微軟的一種指令擴展和路徑擴展,至於它要完成的功能對於我們大多數電腦愛好這來說是很有趣並且是實用價值的,從小編在http://www.microsoft.com查詢的資料得知,自從Windows NT 4.0以來,Windows便具有了和Linux一樣的指令行自動補全的功能,不信將HKEY_LOCAL_MACHINE\Software\Microsoft\ Command Prosessor\CompletionChar的鍵值改為9,然後切換到指令行視窗,輸入cd c:\wind,然後按一個Tab試一下,呵呵……系統自動為你輸入了cd C:\Windows。
8.一個有趣的Bug
在指令行(甚至在其它如Word2000等圖形界面編輯器中!)使用任何一種中文輸入法後,如果在全形、中文標點狀態下輸入一次「……」(可按Shift+^直接從鍵盤輸入),再輸入大寫的任意英文字母或按Shift鍵輸入某些特殊符號,則每個字串後面會自動增加一個「…」號,如「W…」、「%…」等,不知微軟此舉是何用意?筆者死活想不出這種功能有何用處,只能解釋為是一個無關緊要的Bug。
由以上可以看出,傳統的DOS在Win2000時代並不是被完全拋棄,而是被發揚光大,它已經由歷史上一個獨當一面的操作系統轉變為Win2000操作系統的有機組成部分。有道是尺有所短,寸有所長,指令行與圖形界面相比自有其獨特魅力。我們不應忘記「老DOS」,更不應忽視對指令行操作的瞭解和使用,許多時候,一個並不怎麼複雜的操作只需用指令行就能既快又好地完成,又為什麼非得要尋找(甚至是開發)一個專門的圖形界面的工具呢?
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
舊 2003-08-14, 12:09 AM   #2 (permalink)
jaron
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

好複雜的樣子
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
linux - 完全用Linux工作 psac 作業系統操作技術文件 10 2006-10-02 04:41 AM
IE修改全功略和惡意修改IE的恢復方法 psac 作業系統操作技術文件 22 2003-12-11 08:57 PM


所有時間均為台北時間。現在的時間是 05:10 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2021, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1