先给一个示例
@echo off
chcp 65001
set i=3
:restart
start /b /wait ./jre_1.8_32/bin/java -Dloader.path=./lib -Xmx256m -Xms128m -Dfile.encoding=utf-8 -jar client.jar
echo "遇到错误停止运转10秒后自动重启"
timeout /t 10
if %i% GTR 0 (
set /a i = %i% - 1
goto restart
)
pause
- @echo off
echo 表示将内容输出到窗口 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
- chcp 65001
启动 jar 包后输出日志时,中文会乱码 Java代码中统一编码为UTF8,打包成Jar通过CMD运行,都会出现中文字符串为GBK问题。根源——cmd/bash默认的编码是GBK。 打开cmd,输入以下命令:chcp 65001 更改cmd的编码为UTF-8 最好也要规定执行java时的编码方式,把jvm的读写文件、也就是流的编码设置为utf-8。这样输出输入显示都是utf-8:
java -Dfile.encoding=utf-8 -jar XXX.jar
参考:https://blog.csdn.net/ztx01001/article/details/106072879
- start 命令
/b 应?程序时不必打开新的“命令提?符”窗?。 /wait 启动应?程序,并等待其结束。
- timeout /t 10
带倒计时提示信息休眠 10 秒
- %i%
使用 %i%,取出 i 的值 set i=3 给变量 i 赋值 3 set /a 执行数学计算 数值的比较:比较参数如下: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
- goto
**.**bat 中没有 while 语句,可以使用 if 加 goto 来替代
goto 命令 跳转的意思,用 :XX 构筑一个标记,用 goto XX跳转到XX标记处。
- pause
暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行
.bat 学习网址:
- BAT 教程&资料:http://www.bathome.net/forumdisplay.php?fid=33
- BAT 命令常用 API:https://www.csdn.net/tags/NtzaMg3sMDcxNTEtYmxvZwO0O0OO0O0O.html
- BAT 基础知识 — 主要是 start 命令的详细用法:https://wenku.baidu.com/view/b02ffc4c551252d380eb6294dd88d0d233d43cbd.html
- bat 脚本的几种休眠方式:https://chenxuehu.com/article/2020/06/7603.html
- bat 启动 jar 包导致中文编码为 GBK:https://blog.csdn.net/ztx01001/article/details/106072879
- bat 批处理启动 jar:https://www.csdn.net/tags/MtTaMgysNjk1NzI4LWJsb2cO0O0O.html
|