【问题标题】:How to run two batch scripts simultaneously?如何同时运行两个批处理脚本?
【发布时间】:2017-02-10 14:08:06
【问题描述】:

我今年夏天拍了一部电影,为了让工作更轻松,我没有做特效,而是构建了一个批处理程序。 当我运行第一个文件(1.bat)时,它会运行,然后启动另一个(2.bat)(显示加载栏)和另一个(3.bat)(显示文本列表) 问题是出现文本的窗口打开得很好,但是文本不滚动,但是当它完全自己运行时,它可以工作。

提前感谢您的帮助

这是代码:

1.bat

@echo off
title [Launch Program]
cls
:var1
set /A k=%k%+1
if %k%==70 cls & echo Démarge en cours.
if %k%==140 cls & echo Démarge en cours..
if %k%==210 cls & echo Démarge en cours...
if %k%==280 cls & echo Démarge en cours.
if %k%==350 cls & echo Démarge en cours..
if %k%==420 cls & echo Démarge en cours...
if %k%==490 cls & echo Démarge en cours.
if %k%==560 cls & echo Démarge en cours..
if %k%==630 cls & echo Démarge en cours...
if %k%==700 cls & echo Démarge en cours.
if %k%==770 cls & echo Démarge en cours..
if %k%==840 cls & echo Démarge en cours...
if %k%==910 cls & echo Démarge en cours.
if %k%==980 cls & echo Démarge en cours..
if %k%==1050 cls & echo Démarge en cours...
if %k%==1120 start 2.bat
GOTO var1

2.bat(加载条)

echo off
start 3.bat
color a
mode 103,5
set counter=0
set counterb=000
set core=±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
set "valuecore=                                                                                                               "
setLocal EnableDelayedExpansion
:start
cls
echo.ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo.³%valuecore:~0,100%³
echo.ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
if %counter% GEQ 100 set msg=complete& set counterb=10000& goto exit
echo.                        %counterb:~0,-2%%%
set /a counter=counter+1
set /a counterb=counterb+100
set "valuecore=!core:~0,%counter%!                                                                                                    "
set delay=0
:delay
if %delay%==125 goto start
set /a delay=delay+1
goto delay
:exit
echo. %counterb:~0,-2%%% %msg%
ENDLOCAL
exit

3.bat

@echo off
cls
title [Chargement des modules]
:var1
set /A k=%k%+1
if %k%==20 echo     Application........................0x9se5785
if %k%==40 echo     Application........................0x9865785
if %k%==60 echo     Application........................0x986hfgf
if %k%==80 echo     Application........................0x91gf4gd
if %k%==100 echo    Application........................0xa865785
if %k%==120 echo    Application........................0x9800785
if %k%==140 echo    Application........................0xk865gj7
if %k%==160 echo    Application........................0x7865hgf
if %k%==180 echo    Application........................0x9865785
if %k%==200 echo    Application........................0xROZ5ng8
if %k%==220 echo    Application........................0x986fgj7
if %k%==240 echo    Application........................0x9865gnf
if %k%==260 echo    Application........................0x9865785
if %k%==280 echo    Application........................0x98KE785
if %k%==300 echo    Application........................0x110cdf0
GOTO var1

【问题讨论】:

  • 您是否直接尝试3.bat?那么k 可能有一个不应该有的值(即大于 300)。在3.bat 的开头添加set "k="。您还应该实现一种退出无限循环的方法(例如if %k% lss 301 goto :var1)。

标签: windows batch-file cmd


【解决方案1】:

斯蒂芬,你是个天才!!

实际上,k 变量将其值传递给1.bat,所以在3.bat 我有set /A k=0 并且它有效

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 2013-07-30
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2019-11-21
    相关资源
    最近更新 更多