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.
Field | Value |
Title | Run With Cmd |
Command | %ComSpec% |
Arguments | /C $(ItemPath) |
Initial Directory | $(ItemDir) |
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.
Field | Value |
Title | Run With Cmd and Remain |
Command | %ComSpec% |
Arguments | /K $(ItemPath) |
Initial Directory | $(ItemDir) |
Now we should see our new external tools available on the Tools menu.
However, we’d like to right-click on the file and run the cmd file via Solution Explorer like so:
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:
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.
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.
Now the ‘Project and Solution Context Menus | Item’ context menu should look like this in the Customize Dialog.
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.
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.
The finished product looks like this.
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.
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.
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
Title | Run With Cmd |
Command | C:\Windows\System32\cmd.exe |
Arguments | /C $(ItemPath) |
Initial directory | $(ItemDir) |
One that remains after executing
Title | Run With Cmd and Remain |
Command | C:\Windows\System32\cmd.exe |
Arguments | /K $(ItemPath) |
Initial directory | $(ItemDir) |
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.
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.
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'.