IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> VSCode批量代码比较 -> 正文阅读

[开发工具]VSCode批量代码比较

前言

最近因为工作原因,需要找出一个工程里面修改过的地方。VSCode里自带代码比较功能,可以高亮代码不同的地方。然而手动一个个打开文件来比较显然非常的繁琐,在网上检索后发现并没有相关的方法。因此,为了解决这个问题,在查阅了官方文档后,决定分享这个方法。

查阅文档

The Visual Studio Code command-line interface中,有-d指令,可以打开差异编辑器(代码比较),需要输入两个文件夹的参数。

ArgumentDescription
-h?or?--helpPrint usage
-v?or?--versionPrint VS Code version (for example, 1.22.2), GitHub commit ID, and architecture (for example, x64).
-n?or?--new-windowOpens a new session of VS Code instead of restoring the previous session (default).
-r?or?--reuse-windowForces opening a file or folder in the last active window.
-g?or?--gotoWhen used with?file:line{:character}, opens a file at a specific line and optional character position. This argument is provided since some operating systems permit?:?in a file name.
-d?or?--diff <file1> <file2>Open a file difference editor. Requires two file paths as arguments.
-m?or?--merge <path1> <path2> <base> <result>Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions, and the output file to save merge results.
-w?or?--waitWait for the files to be closed before returning.
--locale <locale>Set the?display language?(locale) for the VS Code session. (for example,?en-US?or?zh-TW)

因此,通过在VScode终端(或用win+R,输入CMD,用cd指令进入需要比较的文件夹)例如:

code  . -d 目标文件1路径 目标文件2路径
cd 目标文件目录
code  . -d 目标文件1路径 目标文件2路径

可以用CMD来进行操作意味着:通过编写bat批处理命令文件即可实现一键打开所有需要比较的代码。?

以我在桌面创建的compare文件夹为例,compare文件夹中包含了proj1和proj2文件夹,分别代表着修改前和修改后的工程文件,现在我们要找出哪些代码发生了变化:

?在下方终端输入

code  . -d .\proj1\main.c .\proj2\main.c

?然后编辑器便打开了这两个文件的差异比较器,可以看到两个代码第六行有区别和变动。

?通过依次输入下列的命令,即可以打开所有需要比对的文件:

code  . -d .\proj1\main.c .\proj2\main.c
code  . -d .\proj1\module1.c .\proj2\module1.c
code  . -d .\proj1\module2.c .\proj2\module2.c
code  . -d .\proj1\module3.c .\proj2\module3.c
code  . -d .\proj1\lib.h .\proj2\lib.h

?但索性这里的文件比较少,如果是一个比较大的工程,文件到达两位数时,手动输入这些代码也非常耗时耗力。这里推荐通过python来实现列出文件夹中的列表,并输出需要的指令(这里python文件创建在compare目录下,".\"可以指向当前所在目录)。

import os
temp=''
filelist = os.listdir('.\\proj1')
for sv in filelist:
    #通过该判断筛选掉需要读取的文件
    if(sv.find(".c")>0):
        #通过该判断筛选不需要读取的文件
        if(sv.find("h")<0):
            if(temp!=''):
                temp+='&'
            temp+="code  . -d .\\proj1\\"+sv+" .\\proj1\\"+sv
print(temp)

运行改代码后,成功导出了以下字符串?

code  . -d .\proj1\main.c .\proj2\main.c&code  . -d .\proj1\module1.c .\proj2\module1.c&code  . -d .\proj1\module2.c .\proj2\module2.c&code  . -d .\proj1\module3.c .\proj2\module3.c

在compare文件夹下创建新文本文档,重命名,将txt改为bat,右键编辑,将python运行后输出的字符串复制到其中,并保存。

(注:“&”可以一次性指向这些命令,如果没有“&”,只执行第一句。)

保存后双击该bat文件即可,vscode会自动打开所有需要比较的代码文件。

?

?如果需要源文件进行学习的,可以点击下方链接来进行调试。

?点击前往下载(1C币)

如果帮到你的话,希望能给作者点点赞,有问题可以在评论区提问,看到会及时回复。?

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:15:36  更:2022-09-24 21:18:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:16:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码