How to Run a PowerShell Script from Batch File
August 16, 2011 11 Comments
A friend was lamenting to me recently that there was an aspect of Powershell that he found annoying. He didn’t like the fact that you had to open a PowerShell command line window to run a script. Well guess what, dear friend – you don’t really need to do that!
This blog entry details the quick and easy method for running a PowerShell script from a shortcut on your desktop. To get started let’s have a quick little script on hand to test how this works.
1. Open notepad, copy the below text into it, and save it as PowerShellTest.ps1. Keep track of where you save it.
$name = Read-Host “What is your name?” #Get name from CLI.
$quest = Read-Host “What is your quest?” #Get quest fromCLI
$windowObject = new-object -comobject wscript.shell #Create windows message box object.
$output = $windowObject.popup(“Hello $name.`nYour quest sounds exciting!”,0,”Quest: $quest”,1) #Display the message.
Now, here is how you can open that script in Powershell by just clicking on an icon.
2. Where ever you saved PowerShellTest.ps1, right click and select New Document.
3. Name the file “PowerShellTest.cmd“. The cmd is used to assign a file extension type of command to the text file. This lets it operate as an executable file.
4. You will see the following popup message:
Select “Yes” to confirm.
5. Now right click the PowerShellTest.cmd file that you just made, and select “Edit“. This will open up the CMD file in Notepad, and allow you to finish this process.
6. Inside of the cmd file, type in “Powershell.exe”, a space, and then the name of the PowerShell file you made in step 1.
Notice that I added “.” to the front of the file name. This is required by Powershell to help indicate that this is a file, and not a variable. It is called “Dot Sourcing” in Powershell.
The actual text I used is: Powershell.exe .PowerShellTest.ps1
7. Save and then close the CMD file to continue.
8. Now, to test the final product, double-click on the CMD file that you made in steps 3 and 4. You will get the following result:
You are going to be prompted for your name, and your quest. Just make up something dreadfully clever for each. Once you type the text, press Enter for each line. After your final entry a message box is displayed, indicating the the script has completed.
So, there you go. You were able to run a PowerShell script by simply clicking on a CMD text file. I generally store the CMD file with the PowerShell script file to make them quickly accessible.
While this program is simple, it does highlight the method for opening a PowerShell script from Windows Explorer. Incidentally, it shows the method to prompt a script user for input, and also shows how to display a Windows message box output.
As always, let know if you have any questions or comments.
Thank you, Patrick