vscode@右键文件夹或文件vscode打开一键配置

news/2025/2/24 18:50:21

文章目录

    • abstract
    • 一键脚本
      • 在线下载代码并运行
      • 说明
      • 备用源码

abstract

  • 有两大类方法:用vscode安装包重新安装,在双击安装包后勾选上相关选项(添加右键vscode打开菜单)
  • 另一类是你不想重新安装,现在也可以很方便的一键配置(还可以完成一定的自定义设置,比如菜单名称)

一键脚本

打开powershell(系统自带的也可以)运行下面的一个方案即可

在线下载代码并运行

执行下面的语句

irm https://gitee.com/xuchaoxin1375/scripts/raw/main/PS/Tools/Tools.psm1|iex

Set-OpenWithVscode

说明

可以指定参数(如果执行效果不达预期,可以查看命令行内置文档)

help Set-OpenWithVscode

例如

PS> help Set-OpenWithVscode

NAME
    Set-OpenWithVscode

SYNOPSIS
    设置 VSCode 打开方式为默认打开方式。


SYNTAX
    Set-OpenWithVscode [-Path <Object>] [-MenuName <Object>] [<CommonParameters>]

    Set-OpenWithVscode [-Remove] [<CommonParameters>]


DESCRIPTION
    直接使用powershell的命令不是很方便
    这里通过创建一个临时的reg文件,然后调用reg import命令导入
    支持添加右键菜单open with vscode
    也支持移除open with vscode 菜单
    你可以根据喜好设置标题,比如open with Vscode 或者其他,open with code之类的名字
....

完整内容请自行执行查看命令

备用源码

如果在线版本无法执行,可以将以下内容拷贝粘贴到powershell中

function Set-OpenWithVscode
{
    <# 
    .SYNOPSIS
    设置 VSCode 打开方式为默认打开方式。
    .DESCRIPTION
    直接使用powershell的命令不是很方便
    这里通过创建一个临时的reg文件,然后调用reg import命令导入
    支持添加右键菜单open with vscode 
    也支持移除open with vscode 菜单
    你可以根据喜好设置标题,比如open with Vscode 或者其他,open with code之类的名字
    .EXAMPLE
    简单默认参数配置
    Set-OpenWithVscode
    
    .EXAMPLE
    完整的参数配置
    Set-OpenWithVscode -Path "C:\Program Files\Microsoft VS Code\Code.exe" -MenuName "Open with VsCode"
    .EXAMPLE
    移除右键vscode菜单
    PS> Set-OpenWithVscode -Remove
    #>
    <# 
    .NOTES
    也可以按照如下格式创建vscode.reg文件,然后导入注册表

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\*\shell\VSCode]
    @=$MenuName
    "Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

    [HKEY_CLASSES_ROOT\*\shell\VSCode\command]
    @="$PathWrapped \"%1\""

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\shell\VSCode]
    @=$MenuName
    "Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

    [HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
    @="$PathWrapped \"%V\""

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
    @=$MenuName
    "Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

    [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
    @="$PathWrapped \"%V\""

    #>

    [CmdletBinding(DefaultParameterSetName = "Add")]
    param (
        [parameter(ParameterSetName = "Add")]
        $Path = "C:\Program Files\Microsoft VS Code\Code.exe",
        [parameter(ParameterSetName = "Add")]
        $MenuName = "Open with VsCode",
        [parameter(ParameterSetName = "Remove")]
        [switch]$Remove
    )
    Write-Verbose "Set [$Path] as Vscode Path(default installation path)" -Verbose
    # 定义 VSCode 安装路径
    #debug
    # $Path = "C:\Program Files\Microsoft VS Code\Code.exe"
    $PathForWindows = ($Path -replace '\\', "\\")
    $PathWrapped = '\"' + $PathForWindows + '\"' # 由于reg添加右键打开的规范,需要得到形如此的串 \"C:\\Program Files\\Microsoft VS Code\\Code.exe\"
    $MenuName = '"' + $MenuName + '"' # 去除空格

    # 将注册表内容作为多行字符串保存
    $AddMenuRegContent = @"
    Windows Registry Editor Version 5.00
   
       [HKEY_CLASSES_ROOT\*\shell\VSCode]
       @=$MenuName
       "Icon"="$PathForWindows" 
   
       [HKEY_CLASSES_ROOT\*\shell\VSCode\command]
       @="$PathWrapped \"%1\""
   
       Windows Registry Editor Version 5.00
   
       [HKEY_CLASSES_ROOT\Directory\shell\VSCode]
       @=$MenuName
       "Icon"="$PathForWindows" 
   
       [HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
       @="$PathWrapped \"%V\""
   
       Windows Registry Editor Version 5.00
   
       [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
       @=$MenuName
       "Icon"="$PathForWindows" 
   
       [HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
       @="$PathWrapped \"%V\""
"@  
    $RemoveMenuRegContent = @"
    Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\*\shell\VSCode]

[-HKEY_CLASSES_ROOT\*\shell\VSCode\command]

[-HKEY_CLASSES_ROOT\Directory\shell\VSCode]

[-HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]

[-HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]

[-HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
"@
    $regContent = $AddMenuRegContent
    # if ($Remove)
    if ($PSCmdlet.ParameterSetName -eq "Remove")
    {
        # 执行 reg delete 命令删除注册表文件
        Write-Verbose "Removing VSCode context menu entries..."
        $regContent = $RemoveMenuRegContent

    }
    # 检查 VSCode 是否安装在指定路径
    elseif (Test-Path $Path)
    {
          
        Write-Verbose "The specified VSCode path exists. Proceeding with registry creation."
    }
    else
    {
        Write-Host "The specified VSCode path does not exist. Please check the path."
        Write-Host "use -Path to specify the path of VSCode installation."
    }

    Write-Host "Creating registry entries for VSCode:"
    
    
    # 创建临时 .reg 文件路径
    $tempRegFile = [System.IO.Path]::Combine($env:TEMP, "vs-code-context-menu.reg")
    # 将注册表内容写入临时 .reg 文件
    $regContent | Set-Content -Path $tempRegFile
    
    # Write-Host $AddMenuRegContent
    Get-Content $tempRegFile
    # 删除临时 .reg 文件
    # Remove-Item -Path $tempRegFile -Force

    # 执行 reg import 命令导入注册表文件
    try
    {
        reg import $tempRegFile
        Write-Host "Registry entries for VSCode have been successfully created."
    }
    catch
    {
        Write-Host "An error occurred while importing the registry file."
    }
    Write-Host "Completed.Refresh Explorer to see changes."
}

粘贴回车执行,然后执行

Set-OpenWithVscode

同样可以完成设置


http://www.niftyadmin.cn/n/5864716.html

相关文章

Unity VRoid+Blender+Unity 3D人物模型导入使用

Unity VRoid模型导出VRM后,经Blender导出FBX格式, 再放入Unity中调整的全过程实操 实在没有最新的解决方案,只能参考老视频教程 VRoid (.vrm) 导入Blender导入Unity和动画 详解全流程_哔哩哔哩_bilibili 诸多尝试后,整理出必要的软件版本搭配如下: VRoid: 由于导出的VRM模型…

【透过 C++ 实现数据结构:链表、数组、树和图蕴含的逻辑深度解析】

一、数组 (Array) 实现 1. 基础数组 #include <iostream> using namespace std;int main() {// 静态数组int staticArr[5] {1,2,3,4,5};// 动态数组int size 5;int* dynamicArr new int[size];// 访问元素cout << "Third element: " << dynam…

全面汇总windows进程通信(二)

在Windows操作系统下,实现进程间通信(IPC, Inter-Process Communication)有几种常见的方法,包括使用管道(Pipe)、共享内存(Shared Memory)、消息队列(Message Queue)、命名管道(Named Pipe)、套接字(Socket)等。本文介绍如下几种: 信号量(Semaphore)和互斥量(…

详细介绍STM32(32位单片机)外设应用

以下是关于STM32外设应用的详细介绍&#xff0c;结合其功能特点及实际应用场景进行分类说明&#xff1a; 一、基本接口与数字外设 GPIO&#xff08;通用输入输出端口&#xff09; 功能&#xff1a;支持输入/输出模式切换&#xff0c;可配置为推挽、开漏、上拉/下拉等模式&#…

C#上位机--循环语句

序言 在 C# 编程中&#xff0c;循环语句是非常重要的控制结构&#xff0c;它允许我们重复执行一段代码&#xff0c;直到满足特定的条件。通过使用循环&#xff0c;我们可以高效地处理大量数据&#xff0c;简化代码逻辑。本文将详细介绍 C# 中四种常见的循环语句&#xff1a;Fo…

SCSS——CSS的扩展和进化

一、SCSS是什么&#xff1f; SCSS&#xff08;Sassy CSS&#xff09; 就相当于CSS&#xff08;层叠样式表&#xff09;突然获得了编程语言的力量——可以写变量、玩函数、拆模块&#xff0c;甚至是“继承”样式&#xff01;实际上&#xff0c;SCSS就是一个让前端开发者效率飙升…

Java+SpringBoot+Vue+数据可视化的在线教育课程管理网站

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 背景介绍 在信息时代的浪潮下&#xff0c;互联网技术以前所未有的速度迅猛发展&#xff0c;深刻地…

Spring Boot数据访问(JDBC)全解析:从基础配置到高级调优

文章目录 引言一、Spring Boot JDBC核心架构1.1 核心组件关系图1.2 自动配置逻辑 二、基础配置实践2.1 数据源配置2.2 多数据源配置 三、JdbcTemplate深度使用3.1 基础CRUD操作3.2 批处理优化 四、事务管理4.1 声明式事务4.2 事务传播机制 五、异常处理5.1 Spring异常体系5.2 自…