SOGO論壇
  登入   註冊   找回密碼
查看: 943|回覆: 0
列印 上一主題 下一主題

[技術文章] MS-DOS 指令 [複製連結]

Rank: 11Rank: 11Rank: 11Rank: 11

熱心參予論壇活動及用心回覆主題勳章 數位硬體勳章

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-6-19 23:25:14 |只看該作者 |倒序瀏覽
本帖最後由 mm117777 於 2012-6-19 23:27 編輯

MS-DOS 指令 架構 為: 指令 [參數] [開關]

例如, c:\>dir *.c /p 是 將 目前 目錄 下的 所有 .c 檔 依 一頁 一頁 方式 列印 在 螢幕上, 其中

dir 是 列印 指令,
*.c 是 參數, 指目前 目錄下的 所有 .c 檔,
/p 是 開關, 指依 一頁 一頁 方式 列印。
下列 為 一些 常用 DOS 指令:

指令 例子 說明  
format format a: 將 在 drive a: 的磁碟 格式化  
  format a:/s 格式化 磁碟 可做為 啟動用,含
COMMAND.COM,IO.SYS及MSDOS.SYS  
cd cd \cpg\labs 從 目前 的 目錄 到 目錄 \cpg\labs  
md md games 在目前的目錄下開一新目錄games  
rd rd test 從目前 的 目錄下 清除 目錄 test  
cls cls 清除螢幕  
copy copy file1 file2 複製 檔案 file1 成 file2  
del del *.bak 清除 所有 .bak 檔  
dir dir *.c 列出 所有 *.c 檔 於螢幕  
  dir *.* /w   
  dir *.* /p/o   
path path 列印 路徑 以知 設定 環境  
ren ren file1 files 將 file1 改名為 file2  
type type file 將 file 列印 在 螢幕  
  type file|more 將 file 列印 在 螢幕 依頁 方式列印  


第 0.3.3 節 MS-DOS 如何 執行 指令

MS-DOS 的 執行檔 有 3 種: .COM、 .EXE、 .BAT。 如果 在 目前的 目錄下 有 file.COM、 file.EXE 及 file.BAT 三個檔, 鍵入 file 後 DOS 是 執行 那個檔?

如果 file 是 內建 指令 則 執行 內建指令, 不然 就 執行 file.COM。 若 沒有 file.COM 則 執行 file.EXE, 否則 執行 file.BAT。

如果 file 不是 內建 指令, 又 目前 的 目錄下 沒有 file.COM、 file.EXE 及 file.BAT 三個檔, 則 DOS 依 環境變數 PATH 中 路徑的 順序 尋找 執行檔 file, 若有 則 再按 .COM、 .EXE 及 .BAT 的順序 尋找。 若 都沒有 則 列印 出 Bad command or file name。

當 PATH 中 含 C:\TC;C:\TC\BIN; 我們 可 在 任何 目錄下 鍵入 tc file.c 以 使用 TURBO C, 又 當一個 程式 編譯 成 一執行檔 .EXE 時, 須 注意 其 主檔名 不為 內建 指令。


第 0.3.4 節 MS-DOS 輸入 及 輸出 轉向

MS-DOS 有 3 個 基本 檔案 stdin, stdout 及 stderr。 由 鍵盤 輸入 的 是 stdin, 輸出 至 螢幕 的是 stdout。 從 鍵盤 輸入 可轉為 由 一般 檔案 輸入, 例如 執行 一 C 程式 lab1.exe 需 由 鍵盤 輸入資料,我們 可 先 將 資料 存在 一檔案 如 in.txt, 執行 lab1.exe 時, 鍵入 lab1 <in.txt 即可。

輸出 至 螢幕 可 轉為 輸出 至 一般 檔案, 例如 C:\>type file,我們可 在 螢幕 看到 檔案 file 的內容, 若 鍵入 指令 C:\>type file >out, 則 輸出 至 螢幕的 資料 全 存入 檔案 out, 螢幕 也 見不到 什麼, 若 鍵入 指令 C:\>type file >>out, 則 輸出 至 螢幕 的 資料 全 附加 在檔案 out 之後。

一個 執行檔 的 輸出 可 做 另一 執行檔 的 輸入, 例如 C:\>type file | more、 C:>grep file 林 | sort >out等。




--------------------------------------------------------------------------------

第 0.4 節 程式語言


程式語言 基本上 可 分為 四類: 機器語言、 組合語言、 高階語言 及 自然語言 (普通話)。 電腦 CPU 所能 執行的 語言 是 機器語言, 機器語言 是 由 一連串的 0 與 1 所構成。 機器語言 非常 不適合 人 去 編寫、 閱讀 及 修改, 所以 有 組合語言 發展 出來, 組合語言 較容易 編寫、 閱讀 及 修改, 但是 電腦 無法 直接 執行 組合語言, 因此 需要 組合編譯器 將 組合語言 翻譯 成 機器語言。 又 組合語言 與 普通話 差太多, 因此 有 高階語言 如 Fortran、 Cobol、 Pascal 及 C 等 發展 出來。 目前 電腦 的 普通話 程式語言 仍在 研究發展中, 尚未有 成品 可供 使用, 因此 我們 仍 須 學習 高階語言 如 C 或 低階語言 以 發展 應用軟體 或 其它。

一般而言, 程式語言 是 由 程式 敘述 所構成, 其 控制 流程 可分為: 連續性、 選擇性、 迴圈性、 跳躍性等。 對 C 程式語言 而言,
選擇性 敘述 有 if-else 敘述 及 switch 敘述;
迴圈性 敘述 有 while、 for 及 do-while 敘述;
跳躍性 敘述 有 break、 continue、 return、 goto 及 函數 呼叫 等。

C 程式語言 的 敘述 有 簡單敘述 及 複合敘述 兩類, 簡單敘述 是 以 分號 ";" 做 結束。 複合敘述 是 由 括號 {} 構成, 括號 內 可填上 0 個, 1 個 或 多個 簡單敘述。 簡單敘述 約有 下列 幾種:

指派 敘述
其 語法 為 : 變數 = 運算式;
其 語意 為 : 將 運算式 的 值 指派 給 變數。
例如 : x = y*(x+1);
說明 : 若 在 執行 此 敘述 前 變數 x 與 y 的 值 都是 2, 執行後 x 的 值 變為 6, y 的 值 不變。

if 敘述
其 語法 為 : if ( 運算式 ) 敘述;
其 語意 為 : 若 運算式 的值 不為 0 則 執行 該敘述, 否則 跳過 該 敘述。
例如 : if ( x % 5 == 0 ) { printf("\n"); x = 1; }
說明 : 若 變數 x 的值 是 5 (可 解釋 為 每列印 5 個) 就 跳行。

if-else 敘述
其 語法 為 :

                    if ( 運算式 ) 敘述1;
                    else 敘述2;

其 語意 為 : 若 運算式 的 值 不為 0 則 執行 敘述 1, 否則 執行 敘述 2。
例 : if (x%2==0) x=x/2; else x=3*x+1;
說明 :
(1) x 為 偶數 則 除 2, 不然 乘 3 加 1。
(2) 此 敘述 亦可 改寫 成 x = (x%2==0) ? x/2 : 3*x+1;

if-else-if 敘述
其 語法 為 :

                    if (運算式1) 敘述1;
                    else if (運算式2) 敘述2;
                    ...
                    else 敘述n;

其 語意 為 : 若 運算式 1 的 值 不為 0 則 執行 敘述 1, 否則, 若 運算式 2 的 值 不為 0 則 執行 敘述 2 等, 若 以上 皆非 則 執行 敘述 n。
例 :

              if (total>=90) total=total*1.07;
              else if (total>=80) total=total*1.05;
              else if (total>=70) total=total*1.03;


switch 敘述
其 語法 為 :

                    switch ( 運算式 )
                    {  case 常數1: 敘述1; break;
                       case 常數2: 敘述2; break;
                       ...
                       default:    敘述n; break;
                    }

其 語意 為 : 若 運算式 的 值 為 常數 1 則 執行 敘述 1, 否則, 若 運算式 的 值 為常數 2 則 執行 敘述 2 等, 若 以上 皆非 則 執行 敘述 n。
例 :
           
              switch (c)
              { case 'A' : total_A++; break;
                case 'E' : total_E++; break;
                case 'I' : total_I++; break;
                case 'O' : total_O++; break;
                case 'U' : total_U++; break;
                default  : others++;
              }


while 敘述
其 語法 為 : while ( 運算式 ) 敘述;
其 語意 為 : 若 運算式 的 值 不為 0, 則 執行 敘述, 並且 一直 執行 該 敘述 直到 運算式 的 值 為 0。
例 :

                    while ( x > 1 )
                    if ( x % 2 == 0 ) x /= 2;
                    else x = 3 * x + 1;

說明 : 當 x 大於 1 時, 若 x 為 偶數 則 繼續 除 2, 不然 乘 3 加 1, 一直 到 x 的值 變為 1。

for 敘述
其 語法 為 : for (運算式1; 運算式2; 運算式3) 敘述;
其 語意 為 :

                    運算式1;
                    while ( 運算式2 )
                    {          敘述;
                          運算式3;
                    }

例 :

              sum = 0;
              for ( i = 1 ; i <= n ; i++)
                  sum += i*i;

說明 : 求 1 至 n 的 平方和。

do-while 敘述
其 語法 為:

                      do
                         敘述;
                      while( 運算式 );

其 語意 為 : 執行 敘述 , 一直 到 運算式 的值為 0。
例 :

              do
                c = getchar();
              while (c == ' ');

說明 : 將空白去掉。

喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2025-3-1 00:10

© 2004-2025 SOGO論壇 OURSOGO.COM
回頂部