Поскольку я не знаю, какой тип проблемы у вас в неизвестном коде, я могу только показать известное непредсказуемое или случайное поведение в пакетных файлах.
1 - эхо нескольких задач в конце строки Иногдано не всегда перевод строки и возврат каретки печатаются как ASCII-символы 10/13 (круг и примечание) вместо начала новой строки.
@echo off
if "%1"=="/second" (
call :task %2
goto :eof
)
(call "%~0" /second 1 >con ) | ( call "%~0" /second 2 )
echo END OF TASKS
goto :eof
:task
for /L %%n IN (1,1,10) DO (
echo This is task%1, output no %%n
ping -n 2 localhost > nul
)
goto :eof
2- Иногда, но не всегда, расширение% ~ ^ LF аварийно завершает работу, затем окно командной строки немедленно закрывается.
@echo off
set critical_content=hello%%~^
echo No crash
for %%a in (1 ) do (
for %%x in (4) do (
rem #%critical_content%#
)
)