命令列操作整理

2021-05-23 13:49:41 字數 3550 閱讀 8597

由ccommandlineinfo繼承乙個子類,

ccommandlineinfosubclass  cmdinfo;

//調式版和release版還不相同

//由呼叫者傳進來的時候, i = 0;

//由ide中帶引數進行除錯的時候, i = 1

int nstartbyide = 0;

for (int i = nstartbyide; i < __argc; i++)

cmdinfo.parseparam(pszparam, bflag, blast);

}過載子類的parseparam

virtual void parseparam(const tchar* pszparam, bool bflag, bool blast);

把pszparamz中得來的引數乙個乙個的放到約定的不同資料中.

跟進ccommandlineinfo裡面看一下.

<2010_1113_1346>

參考:<2010_1113_2127>

ccommandlineinfo本身的處理不靈活, 只能接受乙個引數.

找到乙個靈活的命令列處理類, 正是想要的效果

//#include "stdafx.h"

#include #include "cmdargumentsparse.h"

#include "arguments.h"

#ifdef _debug

#define new debug_new

#undef this_file

static char this_file = __file__;

#endif

/using namespace std;

/** @note

* 定義命令列輸入的參數列,

* 降低命令列構造, 使用, 維護的工作量 */

#define g_int_cmd_para_row_max 7 /**< 命令的數目*/

#define g_int_cmd_para_col_max 8 /**< 命令陣列的列數目, 用於構造命令輸入定義和分析命令列輸入*/

pchar const gpccmdlineparameter [g_int_cmd_para_row_max][g_int_cmd_para_col_max] =

, /** @note

* 選項沒有引數, 例如 cmd -version

*/, /** @note

* 加入帶1個選項的引數, 選項的值必須輸入,

* 有幾個選項, 就必須在此引數的後面用空格分開, 輸入規定個數的選項值

* 例如 /out:"debug/cmdargumentsparse.exe"

* 不過我們要輸入 /out "debug/cmdargumentsparse.exe", 選項和引數值之間的分割符是空格

*/, ,

/** @note

* 加入帶1個選項的引數, 選項的值有預設值,

* 在命令列可以不用輸入具體的選項值, 但是引數名要輸入, 否則此引數功能無效

* 如果輸入的話, 指定的選項值代替預設選項值

*/, /** @note

* 加入帶多個選項的引數, 選項的值必須輸入,

* 有幾個選項, 就必須在此引數的後面用空格分開, 輸入規定個數的選項值

* 例如 /out:"debug/cmdargumentsparse.exe"

* 不過我們要輸入 /out "debug/cmdargumentsparse.exe", 選項和引數值之間的分割符是空格

*/, /** @note

* 加入帶多個選項的引數, 選項的值有預設值,

* 在命令列可以不用輸入具體的選項值, 但是引數名要輸入, 否則此引數功能無效

* 如果輸入的話, 指定的選項值代替預設選項值

*/, /** @note

* 必須傳遞的選項引數值, 沒有選項值

* '不輸入引數名稱, 直接輸入引數值', 必須在其他引數最後嚴格輸入

* 而且規定的所有引數必須在命令列輸入全

* 這不符合多引數傳遞的要求, 不能在實際工程中使用

* 這種輸入形式可以用'加入帶1個選項的引數'的用法代替.

* carg.addargument( "memorymin", "能保證程式執行的計算機記憶體最小配置");

*/};int makecmdparameter(carguments & carg);

int parsecmdparameter(carguments & carg);

int _tmain(int argc, tchar* argv, tchar* envp)

else }

getchar();

return nretcode;

}int makecmdparameter(carguments & carg)

/** 有引數, 選項2個, 沒有選項預設值 */

else if((gpccmdlineparameter[n][2] != null) &&

(gpccmdlineparameter[n][3] != null) &&

(gpccmdlineparameter[n][4] == null) &&

(gpccmdlineparameter[n][5] != null) &&

(gpccmdlineparameter[n][6] != null) &&

(gpccmdlineparameter[n][7] == null))

/** 有引數, 選項1個, 有選項預設值 */

else if((gpccmdlineparameter[n][2] != null) &&

(gpccmdlineparameter[n][3] != null) &&

(gpccmdlineparameter[n][4] != null))

/** 有引數, 選項1個, 沒有選項預設值 */

else if((gpccmdlineparameter[n][2] != null) &&

(gpccmdlineparameter[n][3] != null) &&

(gpccmdlineparameter[n][4] == null))

/** 只有引數, 沒有選項 */

else if((gpccmdlineparameter[n][2] == null) &&

(gpccmdlineparameter[n][3] == null) &&

(gpccmdlineparameter[n][4] == null))

else}}

return nrc;

}int parsecmdparameter(carguments & carg)

else

pargument = "usetempfile";

if(carg[pargument])

pargument = "memoryinformation";

if(carg[pargument])

//... 分析並儲存其他引數

} }else

return nrc;

}

mysql js 命令列登入 命令列操作

一 安裝nodejs window安裝cnpm npm i g cnpm registry 二 linux命令 安裝nodejs或者cnpm時,因為是全域性安裝的,要用到root許可權,所以要用sodu命令。只要能查到版本號就說明裝好了。1.比如 安裝cnpm sudo npm i g cnpm r...

mysql命令列cmd CMD命令列操作MySQL

連線mysql伺服器 mysql u使用者名稱 p密碼 mysql u使用者名稱 p enter password 輸入密碼 無密碼則直接回車 mysql h主機名 u使用者名稱 p密碼 d資料庫名稱 退出 exit quit q ctrl c 顯示幫助資訊 h 取消本行命令 c 取消當前未完成的操...

mysql 命令列 回車 mysql命令列操作

顯示資料庫 show databases 當前資料庫 select database 顯示表show tables 更改表名稱 alter table 原表名 rename 新錶名 rename table 原表名 to 新錶名 檢視系統支援的引擎 show engines 檢視表的引擎 show ...