目錄:
一、背景
二、需求分析
三、實現方法
四、常見問題
==================================================================
正文:
一、背景
有一個windows項目,需要打開多個cmd.exe窗口來啟動眾多子服務。每次手工打開cmd.exe窗口,並執行相同的命令行,不僅效率低下,而且長時間沒有啟動忘了步驟,還容易出錯。
二、需求分析
此時需要一個一鍵啟動的方式來完成操作。
1、windows下,bat腳本可以執行編排好的命令。
2、一個bat腳本對應一個cmd.exe窗口,就考慮編寫多個bat腳本,再由一個總bat腳本來調用。
3、ping命令可以用了拉開啟動的時間間隔。
ping -n 6 127.0.0.1 >nul
三、實現方法
1、新建5個分散腳本:r0.bat、r1.bat、r2.bat、r3.bat、r4.bat
分散腳本中的內容可以改成你自己的命令。腳本數量也可以修改。
r0.bat中
mongod --port 65521 --dbpath d:/mongodb_data --auth
r1.bat中
ping -n 6 127.0.0.1 >nul workon xunfeng_py2 && python -V && python web.py
r2.bat中
ping -n 7 127.0.0.1 >nul workon xunfeng_py2 && python -V && python aider/aider.py
r3.bat中
ping -n 8 127.0.0.1 >nul workon xunfeng_py2 && python -V && python nascan/nascan.py
r4.bat中
ping -n 9 127.0.0.1 >nul workon xunfeng_py2 && python -V && python vulscan/vulscan.py
2、新建總控制bat:run.bat
run.bat中:
start r0.bat start r1.bat start r2.bat start r3.bat start r4.bat ::說明,以上bat是在做如下事項。各個腳本中ping的目的是在拉開啟動時間間隔。 ::start mongod --port 65521 --dbpath d:/mongodb_data --auth ::workon xunfeng_py2 && python -V && python web.py ::workon xunfeng_py2 && python -V && python aider/aider.py ::workon xunfeng_py2 && python -V && python nascan/nascan.py ::workon xunfeng_py2 && python -V && python vulscan/vulscan.py
3、測試
雙擊run.bat查看運行效果。
結果啟動了5個cmd.exe窗口,服務運行成功。
四、常見問題
1、Unix文件和windows文件有區別
如果啟動總bat不能執行所有命令,有可能是Unix格式的文件,用notepad打開,雙擊右下角Unix的標記,修改為windows格式的文件。
2、dos命令連續執行命令連接符
&& 表示前一個命令執行成功后執行后一個命令
workon xunfeng_py2 && python -V && python web.py
3、bat啟動新cmd.exe
start 默認啟動一個新的cmd.exe。
:: 雙冒號無空格,表示bat中的注釋。