Skip to content
鼓励作者:欢迎打赏犒劳

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

脚本说明:

  1. setlocal 和 endlocal 确保环境变量的修改只在脚本运行时有效

如有转载或 CV 的请标注本站原文地址