標籤:
文章開始,我們先回顧一下,如何用cmd命令視窗開啟mongodb資料庫,命令如下:
開啟mongodb資料庫
cd D:\Program Files\MongoDB\binmongod --depath "D:\Program Files\MongoDB\data"
看到以上視窗資訊,我們就可以看到mongodb資料庫啟動成功 或者在瀏覽器運行 http://localhost:27017/看到這樣的英文It looks like you are trying to access MongoDB over HTTP on the native driver port.就證明mongodb資料庫啟動成功了。
可以參考我之前的文章:http://www.cnblogs.com/pingfan1990/p/4531573.html
下面來我們來講解以下如何寫.bat批次檔啟動mongodb資料庫:
一、什麼事bat批次檔
bat檔案是dos下的批次檔。批次檔是無格式的文字檔,它包含一條或多條命令。它的副檔名為 .bat 或 .cmd。在命令提示下鍵入批次檔的名稱,或者雙擊該批次檔,系統就會調用cmd.exe按照該檔案中各個命令出現的順序來逐個運行它們。使用批次檔(也被稱為批次程式或指令碼),可以簡化日常或重複性任務。
二、bat常見的文法命令
Echo 命令
開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何參數,echo 命令將顯示當前回顯設定。
文法
echo [{on|off}] [message]Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重新導向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的檔案中。
@ 命令
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)
Goto 命令
指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。
文法:goto label (label是參數,指定所要轉向的批次程式中的行。)
Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果這裡的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end
標籤的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標籤,goto命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣別人看起來才會理解你的意圖啊。
Rem 命令(可以用::代替rem)
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。
Pause 命令
運行 Pause 命令時,將顯示下面的訊息:
Press any key to continue . . .
Sample:@echo off:begincopy a:*.* d:\backecho Please put a new disk into driver Apausegoto begin
在這個例子中,磁碟機 A 中磁碟上的所有檔案均複製到d:\back中。顯示的注釋提示您將另一張磁碟放入磁碟機 A 時,pause 命令會使程式掛起,以便您更換磁碟,然後按任意鍵繼續處理。
Call 命令
從一個批次程式調用另一個批次程式,並且不終止父批次程式。call 命令接受用作調用目標的標籤。如果在指令碼或批次檔外使用 Call,它將不會在命令列起作用。
文法call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]參數[Drive:][Path] FileName
指定要調用的批次程式的位置和名稱。filename 參數必須具有 .bat 或 .cmd 副檔名。
start 命令
調用外部程式,所有的DOS命令和命令列程式都可以由start命令來調用。 入侵常用參數: MIN 開始時視窗最小化 SEPARATE 在分開的空間內開始 16 位 Windows 程式 HIGH 在 HIGH 優先順序類別開始應用程式 REALTIME 在 REALTIME 優先順序類別開始應用程式 WAIT 啟動應用程式並等候它結束 parameters 這些為傳送到命令/程式的參數 執行的應用程式是 32-位 GUI 應用程式時,CMD.EXE 不等應用程式終止就返回命令提示。如果在命令指令碼內執行,該新行為則不會發生。
choice 命令
choice 使用此命令可以讓使用者輸入一個字元,從而運行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end將顯示defrag,mem,end[D,M,E]?Sample:Sample.bat的內容如下:@echo offchoice /c:dme defrag,mem,endif errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)if errorlevel 2 goto memif errotlevel 1 goto end:defragc:\dos\defraggoto end:memmemgoto end:endecho good bye
此檔案運行後,將顯示 defrag,mem,end[D,M,E]? 使用者可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程式段,m表示執行標號為mem的程式段,e表示執行標號為end的程式段,每個程式段最後都以goto end將程式跳到end標號處,然後程式將顯示good bye,檔案結束。
If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。有三種格式: ⒈if "參數" == "字串" 待執行的命令 參數如果等於指定的字串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} goto noparms ⒉if exist 檔案名稱 待執行的命令 如果有指定的檔案,則條件成立,運行命令,否則運行下一句。 如if existconfig.sysedit config.sys ⒊if errorlevel / if not errorlevel 數字 待執行的命令 如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。 如if errorlevel 2 goto x2 DOS程式運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。
for 命令 for 命令是一個比較複雜的命令,主要用於參數在指定的範圍內迴圈執行命令。 在批次檔中使用 FOR 命令時,指定變數請使用 %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions] %variable 指定一個單一字母可替換的參數。 (set) 指定一個或一組檔案。可以使用萬用字元。 command 指定對每個檔案執行的命令。 command-parameters 為特定命令指定參數或命令列開關。 在批次檔中使用 FOR 命令時,指定變數請使用 %%variable 而不要用 %variable。變數名稱是區分大小寫,所以 %i 不同於 %I三、bat批處理例子
批處理的作用
簡單的說,批處理的作用就是自動的連續執行多條命令。
這裡先講一個最簡單的應用:在啟動wps軟體時,每次都必須執行(>前面內容表示DOS提示符):
C:\>cd wps C:\WPS>spdos C:\WPS>py C:\WPS>wbx C:\WPS>wps
如果每次用WPS之前都這樣執行一遍,您是不是覺得很麻煩呢?
好了,用批處理,就可以實現將這些麻煩的操作簡單化,首先我們編寫一個runwps.bat批次檔,內容如下:
@echo off c: cd\wps spdos py wbx wps cd\
以後,我們每次進入wps,只需要運行runwps這個批次檔即可。
四、bat批處理實現啟動mongodb指令碼
mongodb安裝bin路徑D:\Program Files\MongoDB\bin,mongodb中data資料檔案夾D:\Program Files\MongoDB\data
我們在cmd命令視窗應該是這樣,啟動mongodb資料庫
cd D:\Program Files\MongoDB\binmongod --depath "D:\Program Files\MongoDB\data"
但是每次讓我們去敲這些的時候,確實讓我們很麻煩,那我們可以運用bat的只是,做這樣的bat檔案:
::表示在此語句後所有啟動並執行命令都不顯示命令列本身@echo off echo 你好 ::進入d盤D:cd \Program Files\MongoDB\binmongod --dbpath "D:\Program Files\MongoDB\data"//以下是注釋部分::mongod -- dbpath "D:\Program Files\MongoDB\data":: d:> echo "this d":: d:> echo "this d":: d:> echo "this d":: d:> echo "this d"::mongod --dbpath "D:\Program Files\MongoDB\data"::寫入b.txt檔案::dir D:\Program Files\MongoDB\bin> b.txt::pause
通過這個檔案,那我們每次要開啟mongodb服務時,點擊這個bat檔案,就可以了。
參考資料:
bat檔案 http://baike.baidu.com/view/1024624.htm
BAT檔案文法和技巧(bat檔案的編寫及使用)
BAT檔案文法和技巧bat檔案的編寫及使用
利用bat批處理做啟動mongodb指令碼