Powershell Tutorial Online

Powershell Msdeploy

Before moving to deployment topic let me clarify few thing that will help you create thought process and answer certain question that raised in your mind like

Why we need powershell for deployment?
Powershell scripts basically allows you to take advantage of .NET libraries and write own scripts which are almost as powerful as the .NET code itself. You can do many powerful operations like copy dll from one location to other, call external DLLs, use .NET namespaces like System.IO, System.Net, run processes and intercept output, call web services etc.
You can also IIS web sites and app pool with proper .net framework version.
You can manage to install windows services, stop and start operation with poweshell scripts.
The possibilities are endless.

Option if you dont have powrshell.
-You have to right your batch file, batch is helpful with certain extent, with batch file you can only mananged to copy/paste and few other operation. you can use .net objects,
To use .net objects you have to right your own .net code or .NET libraries and call it from batch script file.

But, Is this right approach to proceed?
-You can customize TFS. for this you have to learn workflow, Integration TFS with .net framework code blocks.

Why we need to automate deployment process?
Make your deployment process reliable, fast and repeatable. See the status of your deployments with the shared central dashboard, and manage all your deployments in one place.
-This is one time process.
-Deployment Automation Patterns are generally reusable solutions.
-Reliable & Powerful
-Eliminate the risk in deploying manually to live systems
-Spend less time on setup and custom scripting for deployments
-See on the dashboard which versions of your software are deployed to each server
-Ensure that deployments over the Internet are secure, with public-key encryption
-Get immediate confirmation that your deployment has succeeded
-NEW: Deploy SQL Server databases alongside your application

Note: Back in the days before automated deployment, we could spend months on one release.