Единственный реальный способ сделать это на языке пакетной обработки - использовать команду call
для вызова функции и работы.Это может быть размещено внизу вашего пакетного документа.
Кроме того, поскольку вы не совсем ясно поняли свою цель здесь и прочитали комментарии, я предполагаю, что из echo hi & TIMEOUT 5>nul echo hi again
вы хотите отобразитькаждая строка через 5 секунд НО только из одной строки или команды.Это можно легко сделать с помощью петли call
и FOR
.В этом случае мы можем использовать %*
, чтобы собрать все "Words Line One"
, "Words Line Two"
, которые вы хотите.
Комбинируя это с простой синтаксической заменой , чтобы удалить кавычки, и мы хороши.
DelayedLine.bat
@echo off
@setlocal EnableDelayedExpansion
Rem | To use the command, Call :SlowOutput "Desired Line" "Desired Line" "Desired Line"
Call :SlowOutput "Line Number One" "Line Number Two" "Line Number Three"
pause>nul
Goto :EOF
:SlowOutput
for %%A in (%*) do (
Set "String=%%A"
Set String=!String:"=%!
echo !String!
Rem | Change 5 To How Many (Seconds) You Wish
Timeout 5 /NoBreak>Nul
)
goto :EOF
Если ваша цель состояла в том, чтобы иметь эффект более светлого шрифта, мы можем использовать скрипт для hackoo в этой теме здесь и измените его для работы с call
в организованном порядке.
Этот сценарий будет отображать букву за буквой, а для каждой call "Word" "Word"
новой кавычки будет новая строка.Все работают по одной строке через call
LetterDelay.bat
@echo off
Rem | To use the command, Call :SlowText "Desired Text"
Rem | To combine two "echo's" on one line we can use the "&"
Call :SlowText "Hello!" & Call :SlowText "How is your day today?"
pause>nul
Goto :EOF
:SlowText
(
echo strText=wscript.arguments(0^)
echo intTextLen = Len(strText^)
echo intPause = 100
echo For x = 1 to intTextLen
echo strTempText = Mid(strText,x,1^)
echo WScript.StdOut.Write strTempText
echo WScript.Sleep intPause
echo Next
)>%tmp%\%~n0.vbs
@cScript.EXE /noLogo "%tmp%\%~n0.vbs" "%~1"
Rem | echo. is optional. It's used as a constant for a newline \n
echo.
goto :EOF
Для получения справки по любой из команд выполните следующее:
call /?
set /?
for /?
if /?
find /?
- Так далее.