Encryption isn't the answer if you want code to be inaccessible to a user, but still want the user to be able to run it. The standard solution for what you'd like to do is a "server side protocol".
The way to set this up is to have a web server or other interface to your code that you have full control over. This is like the front door to your house. To stretch the analogy a little further, when a user comes up and knocks on the door, your batch file executes completely, and then displays the results to the user, without the user ever seeing the code. Everything happens behind closed doors, and the door doesn't open until your batch file is done running.
This is usually done with a web server, a scripting language, and a database.
You can just use your batch file as your script.
A popular web server is the apache server, which you can find here,
http://www.gossipcheck.com/mirrors/apache//httpd/binaries/win32/httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
And provided your script is simple enough, you won't need a database.
You will need to set up a "cgi bin" and tell apache how to interpret batch files. If you want something that handles all the setup for you, instead of using batch files, use a scripting language like php,
http://windows.php.net/download/
And if you don't want to configure anything, you can use an "all in one" package, like xampp, here,
http://www.apachefriends.org/en/xampp-windows.html
If you DO want to encrypt things anyway, then here's how you do it:
-Encrypt something however you'd like to encrypt it
-Have it completely decrypt itself to a random temporary file
-Run that temp file
-Have the temp file destroy itself when it's done running
Even though a plain English copy of your script exists this way, there is no security difference between this and decrypting as you go.
The reason for this is that Windows is a signals-and-registry based OS. Any executable program you have is a set of instructions. On a windows machine, your set of instructions contains four things:
-Resources (things like pictures, sounds, movies, etc)
-Your "window class" (not a "class" in the normal programming class; think of it as the skeleton for your program)
-Calls to put info into and take info out of the registry (the registry is just the database that comes built-in to Windows)
-A signal function (a sub-program that runs when an event happens, for example, when you click a button or move the mouse over something)
All four of these things are visible to Windows, and thus to a clever user. So any user running your code can know anything about your code, without ever reading it.
The easy way to remember all of that is this: if it's running on my computer, it's mine. If it's running on your computer, it's yours.
If you want something kept secret, run it on your computer.