C++中的system(”參數”)

2006-07-25 6:20 am
請問這些參數有哪些可以使用呢??
例如system(\"pause\")之類的指令
謝謝!!

回答 (3)

2006-07-25 7:04 am
✔ 最佳答案
DOS指令,在開始的「執行」或是「附屬應用程式」的「命令提示字元」開啟後,輸入 help 就可以查詢所有指令。
C:\>help

若需某特定指定的資訊,請鍵入 HELP 指令名稱。
ASSOC 顯示或修改關聯的副檔名。
AT 將命令或程式的執行加以排程。
ATTRIB 顯示或變更檔案屬性。
BREAK 設定或清除延伸的 CTRL+C 檢查。
CALL 呼叫其他的批次程式。
CACLS 顯示或修改檔案的存取控制清單 (ACL)。
CD 顯示目前的目錄名稱或目錄變更。
CHCP 顯示或設定字碼頁號碼。
CHDIR 顯示目前的目錄名稱或目錄變更。
CHKDSK 檢查磁碟並顯示磁碟狀態。
CLS 清除螢幕。
CMD 啟動新的 Windows 2000 指令直譯器例項。
COLOR 設定預設主控台背景及前景顏色。
COMP 比較兩個或兩組檔案的差異。
COMPACT 顯示或變更在 NTFS 磁碟分割上的檔案壓縮。
CONVERT 將 FAT 磁區轉換為 NTFS。您不能轉換使用中的磁區。
COPY 將檔案複製到其它位置。
DATE 顯示或設定日期。
DEL 刪除檔案。
DIR 顯示檔案清單或子目錄清單。
DISKCOMP 比較兩個磁片的差異
DISKCOPY 將磁片內容全部複製到另一張磁片。
DOSKEY 編輯命令列,重新呼叫 Windows 2000 命令,建立巨集。
ECHO 顯示訊息,啟動或關閉 echo 功能。
ENDLOCAL 中止在批次檔案中的地區設定變更。
ERASE 刪除檔案。
EXIT 結束 CMD.EXE 程式 (指令直譯器)。
FC 比較兩個或兩組檔案的差異,並顯示結果。
FIND 搜尋檔案中的文字或字串。
FINDSTR 搜尋檔案中的字串。
FOR 為一組檔案指定個別檔案的執行命令。
formAT 格式化磁片以供 Windows 2000 使用。
FTYPE 顯示或修改副檔名關聯的檔案類型。
GOTO 指示 Windows 2000 指令直譯器,跳到有標示的指令行執行。
GRAFTABL 讓 Windows 2000 在圖形介面能夠顯示擴充字元集。
HELP 提供 Windows 2000 指令的說明資訊。
IF 執行邏輯判斷式。
LABEL 建立,變更,或刪除磁碟標籤。
MD 建立目錄。
MKDIR 建立目錄。
MODE 設定系統裝置。
MORE 設定螢幕顯示一頁後暫停。
MOVE 將檔案從目前的位置移動到同一磁碟中的其他目錄。
PATH 顯示或設定執行檔的搜尋目錄。
PAUSE 暫停批次檔案處理並顯示訊息。
POPD 還原先前經由 PUSHD 儲存的的現用目錄設定值。
PRINT 列印文字檔案。
PROMPT 變更 Windows 2000 命令提示字元。
PUSHD 儲存現用目錄,然後修改它。
RD 移除目錄。
RECOVER 恢復損壞磁碟的唯讀資訊。
REM 批次檔或 CONFIG.SYS 中的備註標記。
REN 重新命名檔案。
RENAME 重新命名檔案。
REPLACE 取代檔案。
RMDIR 移除目錄。
SET 顯示,設定,或移除 Windows 2000 環境變數。
SETLOCAL 啟始批次檔中地區設定的變更。
SHIFT 移動批次檔中可取代參數的位置。
SORT 排序輸入項目。
START 啟動一個獨立的視窗以執行指定程式或命令。
SUBST 將路徑對應到磁碟代號。
TIME 顯示或設定系統時間。
TITLE 設定 CMD.EXE 工作階段的視窗標題。
TREE 以圖形顯示磁碟目錄結構。
TYPE 顯示文字檔的內容。
VER 顯示 Windows 2000 版本編號。
VERIFY 告訴 Windows 2000 是否要檢查檔案寫入磁碟的正確性。
VOL 顯示磁碟標籤及序號。
XCOPY 複製檔案及目錄結構。
2006-07-25 7:23 am
system("xx");
是執行系統中的任何內建 (如 MS-DOS 的 dir, cls 等) 和 外在 (如 MS-DOS 的scandisk, fdisk, rundll, 等以及任何能在 MS-DOS/Windows/Linux/... 下跑的命令。)

當然,要是〝和現在在執行的 作業系統一樣〞的命令。如果是在 MS-DOS 下跑的程式裡有
 system("who --all"); (註:Linux 查有哪使用者已經登錄),
或在 Linux 裡有
 system("fdisk /MBR"); (註:MS-DOS 的建立 Partition Table 程式 (Make Boot Record)),
〝基本上〞都是錯的。因為那是另一個系統的程式。
像我寫過一個在 MS-DOS 下可以讓 1.2 或 1.44 的軟碟容量變大的程式(名叫 enlarge)。要是我另有一個程式〝甲〞,裡面有
 system("enlarge");
。程式甲在 DOS 和 Linux 下都 Compiler 過了,程式甲本身也沒有用到特殊的系統功能。在 MS-DOS 跑程式〝甲〞,只要路徑指定好,〝理論上〞是會對的。
但在 Linux 下跑,執行到 system("enlarge"); 一定會錯!哪怕路徑等都對!
因為,enlarge 不能在 Linux 下跑。

這樣,清楚了嗎?(當然,不限 MS-DOS 和 Linux,其它作業系統也一樣。)

2006-07-25 00:16:59 補充:
1. 那是 C 就有的,不是 C++ 才有的2. 另有 spawn 系的 function。它比 system 好。 缺點: A. 不能執行內建命令。如 spawn_("pause") 就是錯的。 B. 比較複雜,初學者不易上手。
2006-07-25 7:19 am
這只是讓你用來執行作業系統指令而已,pause是window下的指令,當然,dos也有提供這條指令,如果相要瞭解有拿些指令可用,建議查詢作業系統的指令集,例如,在命令列中輸入help,或在程式中編寫如下:
system("help");
system("pause");
或是使用windows command等等做為關鍵字上網查詢。
以上完全假設您的作業系統為ms window系列
如果不幸假設錯誤,linux下可以search關鍵定linux 指令,或者到鳥哥的網站看看,其他的作業系統如法炮製。

2006-07-24 23:21:36 補充:
避免使用這類與作業系統相關的東西,可以增加程式的可攜性。http://www.gidnetwork.com/b-61.html


收錄日期: 2021-04-27 17:15:01
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20060724000011KK18730

檢視 Wayback Machine 備份