Text Movies in Batch

25,912

13

55

Introduction: Text Movies in Batch

Hi, I'm wazupwiop, and this is my first instructable. In this instructable I will show you how to make a basic text movie in batch. I recommend you see the text star wars movie in another instructable for motivation, encoragement, and to see what can be done. Download the .bat file below. It might say it is a tmp file, but rename it to stick.bat I also recommend that you READ EACH STEP COMPLETELY AND THOROUGHLY BEFORE ATTEMPTING

Step 1: Some Basic Batch Commands

ok here are some basic batch commands, and what they do:

@ before a command- ex. @echo off- it doesn't allow echo to be seen in the text video
@echo on- allows it to be seen

pause- makes the viewer push a button before moving on

echo-(make sure there is a space between echo and what you want to say) echo, before a string of words, lets them be seen in your command prompt. THERE ARE SOME SYMBOLS THAT ARE NOT ALLOWED LIKE: | < > to name a few the line is shift+\ buttons

cls- clears screen of what your viewing

exit-exits command prompt

these are mostly what I use to make my movies, but if you learn more that is great

this is a command prompt window

Step 2: Example of a Movie

"@ECHO OFF
ECHO HI, I AM STICK MAN
ECHO.
ECHO O
ECHO -[]-
ECHO /\


pause

cls

echo I KNOW Kung-fu! HI YA!
echo.
echo O l l o
echo -[]- -[]-
echo /\____________/\___L_____o

pause

cls

ECHO poor man, boo hoo (puts weopon down)
ECHO.
ECHO O
ECHO -[]-
ECHO /\ l_______________L______o

pause

cls

Echo Lets pick him up
echo.
echo O
echo []-L
echo _____________/\__\_____o_______

pause

cls

ECHO ARG!
ECHO L
ECHO ii
ECHO O
ECHO []
ECHO /\

pause

cls

ECHO WOOPS!!!!
Echo.
ECHO o
ECHO []__ _
ECHO O
ECHO []-
ECHO _______________/\

pause

Cls

ECHO AHHHHHH!
ECHO ______ ________
ECHO I [] I I [] I
ECHO I [] I o I [] I
ECHO I [] I []__ I [] I

pause

Cls

ECHO AHHHHHH! (cont.)
ECHO ______ ________
ECHO I[] I I[][] I
ECHO I []I o I []I
ECHO I[] I []__ I [] I

pause

cls

ECHO BOOM (hits wall)
ECHO 1
ECHO 1 O
ECHO 1[]__
ECHO 1
ECHO 1

pause

cls

ECHO OWWWW!!!!!! leaves impression in wall and is covered in debris
ECHO.
ECHO 1
ECHO 1
ECHO.
ECHO L[[[[[]o

pause

cls

ECHO stick man to the rescue

pause

cls

ECHO picks man up, brushes him off, and sets him on his feet (he is wearing a cape)
ECHO.
ECHO o O _____
ECHO []-[]
ECHO L II

pause

cls

ECHO Stick man says: Let's be friends
ECHO the dude says: sure
ECHO and they were friends, they shook on it
ECHO.
ECHO o O
ECHO []\/[]
ECHO L II

pause

cls

ECHO THE END

pause

cls

ECHO movie made by LEVO GAMES

pause

cls

exit"

paste everything in the quotation marks. DON'T PASTE QUOTATION MARKS!!!!!

another thing is that it might not appear right in your command prompt window, because of the system you are using (i use xp)

you're better off with the batch file included because this is a little messed up.






Step 3: Starting the Making of Your Movie

OK!!!!! you have probably watched my video by now. If you are new to batch you are probably wondering how I did that. Well I'll show you. First we need artwork out of text like so (make your own, but don't use illegal symbols):



O
-[]-
/\

O_____
-[]
/\

These two stick dudes were in my movie

Step 4: PROGRAMMING

OK. So you have your art, your commands, your computer, and command prompt. So know your wondering,"What order do I put them in?" Well I'll show you here. Look at my movie to see an example.

OK notice how I began:
@ECHO
put that at the beginning to make echo not appear.

Then put echo for every line after that. (that you want text after, "echo." with no quotes will make a blank line) Like so:

echo HI I AM STICKY
echo O
echo []
echo /\

THEN (this is important) put PAUSE and CLS like so:

pause

cls

REMEMBER YOU WANT THE VIDEO WATCHER TO SEE YOUR TEXT BEFORE THE SCREEN CLEARS!!!!!!!

Do this above for how ever many screens/pictures you want to show.

this is an example of a batch program (not a movie though)

Step 5: THE ENDING!!!!!! SO EXCITING

SO...... I've made my art, programmed it, and I think I have done it right so far (PM me with the art and programming and I might be able to troubleshoot it if yours doesn't work), How do I end it? I'll tell you now.

up here is where your last pic is

pause so the viewer can see it

cls so the screen clears

Exit should be the last thing on there

Step 6: Final Thoughts, Suggestions, and Troubleshooting Tips

ok final thoughts:
caps DO nOt MaTTeR
always put a period after an echo for a blank line
save your movie as .bat ALWAYS

suggestions:
BE NEAT programming long scripts can be hard if it isn't neat
you can put your commands in ALL CAPS to make them more identifiable
after your first screen you can save as whatever.bat so you can check your work, and all you have to do is save and open your file and changes are there


Troubleshooting:
if it skips a screen make sure your pause is before your cls
random events can happen if you use illegal characters and text.
umm......... I almost always have to troubleshoot
I use XP you may use ME, 2000, 98, 95, or something else. Learn commands for your system (there are only minor differences)

a batch file icon looks somthin like this


Share

    Recommendations

    • Water Contest

      Water Contest
    • Game Life Contest

      Game Life Contest
    • Organic Cooking Challenge

      Organic Cooking Challenge

    55 Discussions

    0
    None
    Sembot

    11 months ago

    how can i adjust the speed of moving , en make sound

    Gonna necro this, but couldn't you literally just put:

    timeout (time to stop) /nobreak >nul

    cls

    instead of forcing user interaction?

    1 reply

    Probably. I was 13 when I wrote the instructable. I have never bothered to learn all of the different features of batch, so I am sure that my instructable is outdated and probably wasn't the most ideal way to write text movies. :)

    sorry i wasn't very specific. I meant a way for the program to wait for a preditermined amount of time, and then execute the next command. I think in vbs the command is sleep

    The most simple command would be:

    timeout /t 30 - it makes the batch file wait 30 seconds, but if a key is pressed, it continues.

    timeout /t 30 /nobreak - it makes the batch file wait 30 seconds, it doesn't matter, if the key is pressed or not, it'll wait 30 seconds.

    timeout /t 30 /nobreak > nul - it makes the batch file wait 30, it won't be affected by the users key presses and is not visible to the user.

    *Note: you can change the seconds (in this case the number 30) to as much seconds as you want.

    ping localhost -n 2 >nul
    in which the 2 is how many seconds it waits before it continues. Hope this helped.

    There are two ways I know of how to delay. The first one is easy and the other one is hard. You can go look on google for batch sleep, download a program and install to have a nifty sleep command, or you can use this code.

    set max=100

    set number=0
    :loop1
    set /p number=number+1
    if %number% equ %max% goto end1
    goto loop1
    :end1

    I have used this code for batch movies before. The only problem is that for each pause you want you have to copy and paste the code (except the max variable which resides at the beginning of the file) and add one to the numbers (like end1 would become end2, loop1 would become loop2, etc.). The max variable sets the amount of delay, but the amount of delay can vary depending on the speed of your system.

    I don't guarantee that the code works because I am on my linux computer and can't pull up the file at the moment. If it doesn't work it probably just needs a small change (so google is your friend).

    I'm sorry. I spaced out when I wrote that code. The /p flag is the prompt flag so it asks you to enter a value. The /a flag is what you want. Here is the real code, and this time I guarantee that it will work because it is from one of my movies.

    set _number=0
    :loop1
    if %_number%==%_max% goto end1
    set /a _number=_number + 1
    goto loop1
    :end1

    Just follow do the same thing to the code for each pause like I said before and it should work.

    yes it is possible to do this, i use it a lot in the programs i make with batch put this into it's own line ping localhost -n 2 >nul this means wait two seconds you can replace the 2 with how many seconds you want it to wait Hope i was of help i came up with this myself

    @echo off

    Title=In The Forest

    Echo ______

    Echo/\__ _\

    Echo\/_/\ \/ ___

    Echo \ \ \ /' _ `\

    Echo \_\ \__/\ \/\ \

    Echo /\_____\ \_\ \_\

    Echo \/_____/\/_/\/_/

    pause

    Echo ______ __

    Echo/\__ _\/\ \

    Echo\/_/\ \/\ \ \___ __

    Echo \ \ \ \ \ _ `\ /'__`\

    Echo \ \ \ \ \ \ \ \/\ __/

    Echo \ \_\ \ \_\ \_\ \____\

    Echo \/_/ \/_/\/_/\/____/

    pause

    Echo ___ _

    Echo / __\__ _ __ ___ ___| |_

    Echo / _\/ _ \| '__/ _ \/ __| __|

    Echo / / | (_) | | | __/\__ \ |_

    Echo \/ \___/|_| \___||___/\__|

    pause

    WHY NO WORK???