You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本需求:顺序执行Bat文件+生成追加式独立日志

批处理脚本批量执行解决方案

需求1:单BAT文件执行扩展至6个的顺序脚本

针对需要通过单个BAT文件执行1st.bat到6th.bat的需求,直接编写主脚本按顺序调用即可,基础示例:

@echo off
REM 依次调用6个脚本
call 1st.bat
call 2nd.bat
call 3rd.bat
call 4th.bat
call 5th.bat
call 6th.bat

echo 所有脚本执行完成
pause

如果需要前一个脚本执行失败则终止流程,可增加错误判断逻辑:

@echo off
setlocal enabledelayedexpansion

REM 定义待执行的脚本列表
set "scripts=1st.bat 2nd.bat 3rd.bat 4th.bat 5th.bat 6th.bat"

for %%s in (%scripts%) do (
    echo 正在执行 %%s...
    call "%%s"
    if !errorlevel! neq 0 (
        echo 错误:%%s 执行失败,终止后续流程
        exit /b !errorlevel!
    )
)

echo 所有脚本执行完成
pause

需求2:指定路径下5个脚本顺序执行(带日志&错误校验)

针对指定路径(示例:D:\ESOFTWARE\PRODBatch)下的5个独立脚本,要求仅当前一个返回0时才执行下一个,且每个脚本生成独立追加式日志,可使用以下主脚本:

@echo off
setlocal enabledelayedexpansion

REM 脚本存放的目标路径
set "script_dir=D:\ESOFTWARE\PRODBatch"
REM 按执行顺序定义脚本列表
set "scripts=1st.bat 2nd.bat 3rd.bat 4th.bat 5th.bat"

REM 切换到脚本所在目录
cd /d "%script_dir%"

for %%s in (%scripts%) do (
    set "log_file=%%~n_s_log.txt"
    echo 正在执行 %%s,日志追加至 !log_file!...
    REM 执行脚本并将输出(含错误)追加到日志
    call "%%s" >> "!log_file!" 2>&1
    if !errorlevel! neq 0 (
        echo 错误:%%s 执行失败(错误码:!errorlevel!),终止后续执行
        exit /b !errorlevel!
    )
)

echo 所有脚本执行成功
pause

关键细节说明

  • 错误校验:通过errorlevel变量判断前一个脚本的执行结果,非0则终止流程
  • 日志处理:使用>>实现日志追加写入,2>&1将错误输出同步写入日志文件
  • 路径处理:cd /d确保切换到脚本所在目录,避免因路径问题导致脚本调用失败

内容的提问来源于stack exchange,提问作者Subhanu Dash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:25:31