Pages

Run .bat and .ps cmd files from Visual Studio 2010 2008

Monday, June 3, 2013
post by Rick Glos:

Visual Studio 2010 | 2012

You can use this technique to run windows command files with the .bat and .cmd extensions.
Just as previously, we need to create at least one, and optionally two, external tools.
One that terminates the window after executing.
Here’s the values for you to copy+paste and screenshot.
FieldValue
TitleRun With Cmd
Command%ComSpec%
Arguments/C $(ItemPath)
Initial Directory$(ItemDir)
screenshot
One that leaves the command window open after executing.  Useful if you didn’t put a ‘pause’ in your command file or if you want to leave the cmd window open for additional commands.
FieldValue
TitleRun With Cmd and Remain
Command%ComSpec%
Arguments/K $(ItemPath)
Initial Directory$(ItemDir)
screenshot
Now we should see our new external tools available on the Tools menu.
image
However, we’d like to right-click on the file and run the cmd file via Solution Explorer like so:
image
Customizing this context menu in Visual Studio 2010 is abit different from context menu customization in VS2005/2008.
Click Tools –> Customize… to launch the Customize Dialog.
From that dialog we want to select the ‘Context menu’ radio option and the ‘Project and Solution Context Menus | Item’ from the drop down.  I’m going to put the two commands right under ‘Open With…’.  You can certainly do whatever you wish.  Start this process by clicking ‘Add Command’ button on the same dialog.
So here’s a screenshot with that above paragraph in a picture instead of words:
image
When we click ‘Add Command’, the Add Command Dialog will open.  Select ‘Tools’ from the Catgories list box on the left and find your external command from the command list box on the right.  Your command will be named something like ‘External Command {Number}’ where {Number} is the number in your list from your External Tools dialog.
image
Clear as mud?  I’m going to use this to make sure I add External Command 3 and External Command 4 to the context menu.
image
Now the ‘Project and Solution Context Menus | Item’ context menu should look like this in the Customize Dialog.
image 
Close that dialog and check out your new menu items by right clicking on a file in Solution explorer.  You should see your new external commands.
image
For extra credit, you can go back into the Customize dialog and move your commands around into spot your like and alos create a Group around them.
image

The finished product looks like this.
image

Visual Studio 2005 | 2008

his will take you a few minutes to setup but once your done, it will save you countless minutes.
It's not unusual to have scripts in your project or solution that automate tasks.  Everything from executing a powershell script, moving files around, or some other custom automation tool you may have written.
The default for double-clicking a cmd file in Visual Studio is for it to open the script for editing.
image
But what if you want to execute it?
One way is to right click the folder above the file, choose 'Open Folder in Windows Explorer', wait for that window to open, find the file with your eyes again, and double-click to execute it.
I tried using the 'Open With...' menu item and adding cmd but it doesn't allow you to pass in the file.
image
So what you end up with is an empty cmd prompt window that hasn't executed the script you thought it would.
Ok great so how did you do it?
On the tools menu you can add external tools and add arguments.  So Tools -> External Tools and a window will open that allows you to run with cmd and also pass in the initial directory as well as some additional arguments.
I created two:
One that terminates the window after executing
TitleRun With Cmd
CommandC:\Windows\System32\cmd.exe
Arguments/C $(ItemPath)
Initial directory$(ItemDir)
image
One that remains after executing
TitleRun With Cmd and Remain
CommandC:\Windows\System32\cmd.exe
Arguments/K $(ItemPath)
Initial directory$(ItemDir)
image
So now you can select the file in solution explorer, then select Tools -> Run With Cmd.
You could go one step further and add it to the context menu.
There's many ways to get into menu customize mode, one way is to choose View -> Toolbars -> Customize.  Make sure to select the 'Context Menus' toolbar and you'll notice a toolbar appear in your menu when you're in customize mode.
image
This next part is tricky.  Leave the customize dialog open - it's semi model, if you close it, you're out of edit mode.  Click Tools -> and you'll see you're new command listed something like 'External Command 3', you'll have to remember which ones you created (or yes you could go and customize that text as well).
Hold down control and left click (we want to copy this to the context menu not move it), slide your pointer over the 'Project and Solution Context Menus' menu item in the context menu toolbar, then down to 'Item', and drop it in there wherever you like.
image
Close the customize dialog.
Now you can right-click on a cmd file in Solution Explorer and select either 'Run With Cmd' or 'Run With Cmd and Remain'.
image

No comments:

Post a Comment

Post Your Comment...