如何从IDE内部运行.bat


71

我想做的事情很简单,但找不到解决方法。
在我的项目中,我有几个.bat文件(我知道,我很老),执行一些任务,例如运行SqlMetal等。

我只想右键单击该文件,然后选择“运行”或其他命令,以便执行蝙蝠操作。我该怎么做?

注意:我知道我可以使用工具->外部工具,但这不是我想要的


您是希望在构建期间还是在总体上执行此操作?
linuxuser27 2011年

1
你在找什么?工具| 外部工具将是实现此目的的明显方法。您还在寻找什么附加功能?
阿德·米勒

@Ade:我正在研究生产率:)
Eduardo Molteni

@Ade:如果您有20个以上的项目以及3个以上的bat文件:您最终得到多少个菜单项?
Eduardo Molteni

好。现在我明白了问题所在。您可以解决此问题,请参见下面的答案。
阿德·米勒

Answers:


138

如果每个项目都有一些与之关联的批处理文件,那么为什么不将它们包含在项目中并添加新的外部工具,并将其与自定义菜单项链接以运行该工具?这将为您提供每个项目中批处理文件的列表以及运行它们的上下文菜单命令。唯一的缺点是它不是特定于文件类型的(它将使您可以将任何文件作为批处理文件运行)。

这是怎么做的...

创建一个名为“运行批处理文件”的外部工具

  1. 将命令设置为:CMD.EXE
  2. 将参数设置为:/ c“ $(ItemPath)”
  3. 将初始目录设置为:$(ItemDir)
  4. 选中“使用输出窗口”复选框,然后应用以创建命令
  5. 注意新命令出现在命令列表中的位置。外部命令从分隔条下方的1开始编号。#1通常是“创建GUID”

现在转到工具->自定义,然后选择命令标签。

  1. 选择上下文菜单单选按钮,然后从下拉列表中选择“项目和解决方案上下文菜单|项目”。
  2. 现在使用“添加命令...”添加新命令
  3. 在类别列表中,选择“工具”
  4. 从命令中选择与“运行批处理文件”自定义命令的位置相对应的“外部命令#”,您在上面的步骤5中记下了该数字。
  5. 将其移动到列表中的正确位置,添加键盘快捷键等。
  6. 关闭对话框。

现在,右键单击批处理文件,您应该看到“运行批处理文件”菜单项。这将执行批处理文件,并在“ VS输出”窗口中显示其输出。


我从批处理文件运行的程序遇到了一些IO异常。如果其他任何人遇到这些问题,请不要选中“使用输出窗口”复选框以使批处理文件在其自己的cmd窗口中运行。
DLeh 2014年

这是创建外部工具的方法。请参见“添加新工具”部分。 msdn.microsoft.com/en-us/library/76712d27.aspx
痴呆的刺猬

此上下文菜单项是否可能仅出现在.bat文件上?相当奇怪,如果我在.cs文件上单击它,则会在Visual Studio的另一个实例中打开该类。
Wolfsblvt

1
经常使用这种方式,如果可以的话,每次都将使用它!
KarmaEDV '19

31
  • 右键单击解决方案资源管理器中的批处理文件
  • 从上下文菜单中选择“打开方式...”
  • 点击“添加...”
  • 在“程序名称”文本框中,输入powershell.exe
  • 在“友好名称”文本框中,输入“ PowerShell”
  • 选择“设为默认值”
  • 点击确定

通过


在Visual Studio 2017中,“程序名称”现在称为“程序”。
thecoolmacdude

7

签出Open Command Line Visual Studio扩展。

根据描述,它具有:

  • 在项目的根目录下打开命令行。
  • 支持所有控制台,例如CMD,PowerShell,Bash等。
  • .cmd和.bat文件的语法突出显示,智能感知和执行

对于解决方案中的文件,将显示一个上下文菜单按钮。

执行批处理文件

或者,编辑批处理文件时可以使用键盘快捷键Shift + Alt + 5。这使得执行任何批处理文件(甚至是那些不属于您项目的文件)变得非常容易和快捷。


方便的插件,而且超级容易设置!
CrazyTim

6

右键单击“解决方案资源管理器”窗口中的文件,打开方式,单击添加按钮以添加.bat文件。在.bat中使用%1来获取所选文件的路径。


2
如果我制作另一个蝙蝠或执行该蝙蝠的exe可以工作。不错的解决方案,但是Ade解决方案对我来说更简单。
Eduardo Molteni

2
批处理应包含:cmd.exe / c%1
Julio Nobre 2012年

这对我在VS2010中不起作用。如果我输入的不是有效路径,则会引发错误。
德鲁·查平

0

只是一个建议:这是可以通过VsCommandBuddy扩展来完成的方案。以下配置为示例:

{
    "cmdname": "mk",
    "title": "Run MK.BAT",
    "description": "Run the MK bat file.",
    "cwd": "$(SolutionDir)",
    "filename": "cmd.exe",
    "arguments": "/C mk.bat",
    "async": false
}

您还可以分配快捷键,因此可以使用快捷键来调用批处理文件。输出出现在您的输出窗格中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.