This 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'.
Later