How do I fix this batch file? (Typewriter Effect)

吃可爱长大的小学妹 提交于 2019-12-04 16:12:05

You don't need to call the same function :Write1 :write2 :write3 :write3.. and so on...

You need just one function TypeWriter to call it as you want, so, you can save a lot of code by just calling it, like this code :

@echo off
Title Example of TypeWriter
color 0A
setlocal enabledelayedexpansion
call :TypeWriter "http://stackoverflow.com/questions/40011157/how-do-i-fix-this-batch-file-typewriter-effect"
pause && goto Next
::************************************************
:TypeWriter
set string=%1
call :GetLength %string%
set string=%string:"=%
set /a length=%len_%
for /l %%A in (1,1,%length%) do (
cls
echo !string:~0,%%A!
ping localhost -n 1 -w 500 -l 5000 > nul
)
::************************************************
:GetLength
set str=%1
set /a len=1
::************************************************
:loop
set /a len_=%len% - 1
if "!str:~0,%len%!"=="!str:~0,%len_%!" goto done
set /a len+=1
goto loop
::************************************************
:done
set /a len_-=2
goto :eof
::************************************************
:Next
color 0C
Call :TypeWriter "Deleting Recycled Items..."
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\*.lnk""
echo del /s /q "C:\$RECYCLE.BIN\*.lnk"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\*.pf""
echo del /s /q "C:\$RECYCLE.BIN\*.pf"
Call :TypeWriter "echo rd /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*""
echo rd /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
echo del /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
Call :TypeWriter "echo rd /s /q "C:\$RECYCLE.BIN\Rar$DIa0.*.*""
echo rd /s /q "C:\$RECYCLE.BIN\Rar$DIa0.*.*"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\Rar$D.*.*"Ia0"
echo del /s /q "C:\$RECYCLE.BIN\Rar$D.*.*"Ia0
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\etilqs_*.*""
echo del /s /q "C:\$RECYCLE.BIN\etilqs_*.*"
echo Recycled Items Deleted!
pause
::************************************************

Edit on 13/10/2016 @22:05

Another example :

@echo off
Call :TypeWriter "http://stackoverflow.com/questions/40011157/how-do-i-fix-this-batch-file-typewriter-effect"
pause && goto Next
::*************************************************************
:TypeWriter
echo(
(
echo strText=wscript.arguments(0^)
echo intTextLen = Len(strText^)
echo intPause = 150
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"
echo(
exit /b
::**************************************************************
:Next
color 0C
Call :TypeWriter "Deleting Recycled Items..."
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\*.lnk""
echo del /s /q "C:\$RECYCLE.BIN\*.lnk"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\*.pf""
echo del /s /q "C:\$RECYCLE.BIN\*.pf"
Call :TypeWriter "echo rd /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*""
echo rd /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
echo del /s /q "C:\$RECYCLE.BIN\Rar$EXa0.*.*"
Call :TypeWriter "echo rd /s /q "C:\$RECYCLE.BIN\Rar$DIa0.*.*""
echo rd /s /q "C:\$RECYCLE.BIN\Rar$DIa0.*.*"
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\Rar$D.*.*"Ia0"
echo del /s /q "C:\$RECYCLE.BIN\Rar$D.*.*"Ia0
Call :TypeWriter "echo del /s /q "C:\$RECYCLE.BIN\etilqs_*.*""
echo del /s /q "C:\$RECYCLE.BIN\etilqs_*.*"
echo Recycled Items Deleted!
pause>nul
::************************************************
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!