一般情況下很少寫bat命令,所以對這一塊不是很熟悉,最近剛好用到這些,算是一次成功的bat編寫嘗試,故記錄下來:
一、使用批處理命令啓動Jar包
一般情況下,我們啓動jar包使用的命令是java -jar [jar路徑]\[jar包名稱].jar,但是最近遇到需要隱藏cmd窗口的場景,在網上搜了一通,終於找到一種實現的方式可以達到目的,那就是使用javaw.exe啓動。
- java.exe和javaw.exe功能是一樣的,區別在於javaw.exe啓動jar包會隱藏命令窗口不顯示出來,另外還有一種主要啓動網絡上託管的Java應用程序/小程序的命令javaws 參考:https://stackoverflow.com/questions/8194713/difference-between-java-javawv-and-javaws/8194750#8194750
如下示例:
@echo off
start javaw -jar [jar所在路徑]\[jar包名稱].jar
二、在windows中設置bat命令開機啓動(也適用於開機啓動exe文件)
在win 7 中點擊windows徽標-所有程序-啓動,右鍵啓動-打開,進入啓動文件夾,將寫好的bat創建一個快捷方式,放到啓動文件夾中即可;
win10需要進入路徑C:\Users\[用戶名文件夾]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,將bat文件的快捷方式放進去(startup文件夾就是啓動文件夾)即可;
三、殺掉所有的javaw.exe 進程(其他進程易適用)
當你同時打開幾個相同名稱的進程時,關閉時又不想一個一個手動關閉,可以使用taskkill /F /IM [進程名稱] /T 寫進bat文件中 ,如下示例
@echo off
taskkill /F /IM [進程名] /T
簡單介紹下涉及到的參數代表了什麼
/F: 強制關閉進程
/IM:要關閉的進程名
/T :關閉由此進程啓動的所有進程
想要了解詳細的命令參數的含義,參考:https://blog.csdn.net/weixin_39609623/article/details/80698375
四、bat文件中實現延時操作
適用於當啓動兩個有順序的jar包時,如,進程B的啓動需要依賴進程A的時候,可以在兩個進程中間加一行延時命令,在此我只介紹一種我用過的方式
@echo off
echo "延時操作進行中"
ping 127.0.0.1 -n [時間(秒)]>nul
上邊的命令很簡單,就是ping 本地IP 的次數,因爲ping 操作每一秒發送一次數據包,-n 表示發送數據包的次數,所以ping幾次就是延時幾秒,>nul是禁止輸出日誌。