寫一個開啟cmd視窗並執行cmd命令的Windows指令碼(.bat檔案)

2020-09-23 13:00:58

可以執行cmd命令的.bat指令碼

最近因為工作,每天早上需要在Windows上啟動reids、zookeeper、tomcat幾個程式,時間一長就感覺有點繁瑣,於是心血來潮想寫個指令碼來一鍵解決問題,經過一番百度,總結出了以下內容:
1、首先需要建立一個.bat檔案。可以先新建一個記事本,然後將字尾名改為「.bat」,例如「test.bat」。
2、然後編輯內容

@echo off
start cmd /k "cd/d D:\AA\service\redis &&redis-server.exe redis.windows.conf &&taskkill /f /t /im cmd.exe"

start cmd /k "cd/d D:\AA\service\zookeeper-3.4.8\bin &&zkServer.cmd &&taskkill /f /t /im cmd.exe"

start cmd /c "cd/d D:\tmp\tomcat8\bin &&startup.bat"

3、儲存此檔案,然後雙擊此檔案即可。

解釋:

start 是用來啟動一個應用的,使用方式為:start 程式名
cmd /k 表示cmd後面的命令執行完後不關閉視窗
cmd /c 表示執行完cmd命令後關閉命令視窗

關於@echo off 命令:

echo off 關閉其他命令的顯示(但是不包括自身這條命令)
@echo off 關閉所有命令的顯示(@關閉其後命令的顯示)

或者檢視以下連結
https://blog.csdn.net/fly_as_tadpole/article/details/85177379
https://blog.csdn.net/lindaydk/article/details/6305641
有詳細解釋

如果需要關閉的話可以使用:
命令taskkill /f /t /im 加上要關閉的程式

@echo off
start cmd /k "taskkill /f /t /im java.exe &&taskkill /f /t /im cmd.exe"

此關閉方法對於一些單程序的程式有效,多程序的無效。

對於以上命令中的「&&taskkill /f /t /im cmd.exe」語句,本人也不太理解其作用,經過多次測試發現,是否加上此語句好像並沒有什麼影響。