Board logo

标题: [其他] [已解决] 批处理调用自身 如何 执行不同命令 [打印本页]

作者: dong3626    时间: 2023-3-8 00:45     标题: [已解决] 批处理调用自身 如何 执行不同命令

本帖最后由 dong3626 于 2023-3-8 14:22 编辑

需求如题, 路过的大神请指教

谢谢大神,不但技术过硬,还敬业!
  1. @echo off
  2. if defined errorlevel (if %errorlevel%==6 (goto Tiao))
  3. echo.
  4. echo 批处理第一次执行
  5. :: do something
  6. echo 任意键退出当前批处理执行过程并传递errorlevel,并重新打开此批处理
  7. pause
  8. :: 改变errorlevel 并退出,传递errorlevel给下一个批处理
  9. start C:\Users\Go\Desktop\aaa.bat
  10. exit /b 6
  11. :Tiao
  12. echo =========================
  13. echo.
  14. echo 批处理再次执行,跳过了上面的命令
  15. pause
复制代码

作者: newswan    时间: 2023-3-8 01:26

本帖最后由 newswan 于 2023-3-8 01:30 编辑
  1. if %1 == xxx goto:t
  2. :a
  3. start C:\Users\Go\Desktop\aaa.bat xxx
  4. :Tiao
  5. echo =========================
  6. echo.
  7. echo 批处理再次执行,跳过了上面的命令
  8. pause
复制代码

作者: dong3626    时间: 2023-3-8 12:52

还是不正常啊,,请指教

echo off
if not defined "%1" (goto :Ycl) else (goto :Start)

:Ycl
echo.
echo %1
echo 批处理预处理
echo 暂停后应跳过这里
pause
start C:\Users\Go\Desktop\aaa.bat 8
exit


:Start
echo =========================
echo.
echo %1
echo 预处理完成
echo 跳过上面的预处理,继续执行
pause
作者: newswan    时间: 2023-3-8 13:30

  1. echo off
  2. if "%1" == "" (goto :Ycl) else (goto :Start)
  3. :Ycl
  4. echo.
  5. echo %1
  6. echo 批处理预处理
  7. echo 暂停后应跳过这里
  8. pause
  9. start "" "%~f0" 8
  10. exit
  11. :Start
  12. echo =========================
  13. echo.
  14. echo %1
  15. echo 预处理完成
  16. echo 跳过上面的预处理,继续执行
复制代码

作者: dong3626    时间: 2023-3-8 14:02

非常感谢  我消化一下




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2