
04-bat脚本
@echo off
是什么?
作用:关闭命令回显
详细说明:
- 不加这个指令时:脚本执行时会先显示当前执行的命令,再显示命令的输出结果
- 加上这个指令后:只显示命令的输出结果,不再显示命令本身
如下脚本:
shell
@echo off
echo Hello World
输出结果:
shell
Hello World
如果去掉 @echo off
:
shell
C:\>echo Hello World
Hello World
pause 是什么?
作用:暂停脚本执行
详细说明:
执行后会显示 请按任意键继续...
用户按下任意键后脚本才会继续执行(如果后面还有指令)或关闭窗口
使用场景:
防止命令窗口一闪而过(在直接双击运行脚本时特别有用)
方便查看脚本执行结果
java -version >nul 2>&1
作用:静默检查Java是否可用
分解解释:
- java -version:查看Java版本(正常会输出版本信息)
>nul
:将标准输出(stdout)重定向到黑洞(不显示输出内容)- 2>&1:将标准错误(stderr)合并到标准输出
组合效果:
既不显示版本信息(正常输出)
也不显示错误信息(如找不到java命令)
但依然会设置 %ERRORLEVEL%
(关键作用)
if %ERRORLEVEL% neq 0
作用:判断上一个命令是否执行失败
分解解释:
%ERRORLEVEL%
:Windows系统变量,存储上一个命令的退出状态码neq
:不等于(not equal 的缩写)0
:在计算机中通常表示成功,非0值表示失败
补充说明:错误级别示例
命令执行结果 | ERRORLEVEL 值 |
---|---|
成功 | 0 |
一般错误 | 1 |
文件不存在 | 2 |
路径错误 | 3 |
内存不足 | 4 |
实战
java文件执行脚本
需求:
- 设置java临时环境变量
- 执行编译后的
.class
文件
test.bat
shell
@echo off
setlocal
rem 设置Java安装路径
set "JAVA_HOME=D:\java8"
set "CLASSPATH=D:\code"
rem 临时添加到系统环境变量
set "PATH=%JAVA_HOME%\bin;%PATH%"
rem 检查java命令是否可用
java -version >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo 错误:无法找到Java运行时环境,请检查路径是否正确
pause
exit /b 1
)
rem 执行Java程序
echo 正在运行Java程序...
java -cp "%CLASSPATH%" com.test.Test
endlocal
pause
脚本说明:
- setlocal 和 endlocal 确保环境变量的修改只在脚本运行时有效