如何在 Visual Studio 中通过单个操作打开多个文件

发布于 2024-11-09 06:01:48 字数 204 浏览 7 评论 0原文

我经常使用 Visual Studio 中的“命令窗口”按名称快速打开文件,例如通过键入 open main.c

然而,open *.xyz 似乎不起作用,其目的是打开解决方案中带有某些扩展名 xyz 的任何文件。

是否有一种快速简便的方法可以从命令行窗口根据模式一次打开多个文件?

I often use the "Command Window" in Visual Studio to quickly open a file by name, for instance by typing open main.c.

However what doesn't seem to work is open *.xyz, the intent being to open any files in the solution with some extension xyz.

Is there a quick and easy way from the Command Window to open multiple files at once based on a pattern?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蹲在坟头点根烟 2024-11-16 06:01:48

我无法让命令窗口工作。使用文本编辑器或脚本创建文件列表,如下所示:

"full path 1" "full path 2"

Ctrl+o 并将字符串粘贴到打开的文件对话框中。

I couldn't get the command window to work. Use a text editor or a script to make a list of files like this:

"full path 1" "full path 2"

Ctrl+o and paste the string into the open file dialog.

穿透光 2024-11-16 06:01:48

这是使用 Visual Commander 的解决方案,它是 VS 附加组件。它使用剪贴板中的文件路径。我倾向于使用 dir /s/b *.?? 或其他更复杂的解决方案使用 powershell 来生成这些文件路径。

using EnvDTE;
using EnvDTE80;
using System;
using System.Windows.Forms;
using System.IO;

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        if(Clipboard.ContainsText(TextDataFormat.Text))
        {
            string[] files = Clipboard.GetText(TextDataFormat.Text).Replace("\r","").Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries);
            foreach(string f in files)
            {
                try 
                {
                    FileInfo fileInfo = new FileInfo(f);
                    if(fileInfo.Exists)
                    {
                        DTE.ItemOperations.OpenFile(f, EnvDTE.Constants.vsViewKindPrimary);
                    }
                }
                catch{ }
            }
        }
    }
}

Here is a solution using Visual Commander which is a VS add-on. It uses file paths from the clipboard. I tend to drop to a command line use a dir /s/b *.?? or another more complicated solution using powershell to generate these file paths.

using EnvDTE;
using EnvDTE80;
using System;
using System.Windows.Forms;
using System.IO;

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        if(Clipboard.ContainsText(TextDataFormat.Text))
        {
            string[] files = Clipboard.GetText(TextDataFormat.Text).Replace("\r","").Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries);
            foreach(string f in files)
            {
                try 
                {
                    FileInfo fileInfo = new FileInfo(f);
                    if(fileInfo.Exists)
                    {
                        DTE.ItemOperations.OpenFile(f, EnvDTE.Constants.vsViewKindPrimary);
                    }
                }
                catch{ }
            }
        }
    }
}
往日 2024-11-16 06:01:48

您可以使用 find 命令来执行此操作:

$find . -name "*.xyz" -exec open {} \;

you can use find command to do that:

$find . -name "*.xyz" -exec open {} \;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文