VSCode批量代码比较

article/2025/3/4 5:22:51

前言

最近因为工作原因,需要找出一个工程里面修改过的地方。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币)

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

 


http://chatgpt.dhexx.cn/article/MwIyI5eK.shtml

相关文章

三款免费好用的代码对比工具,丢弃BeyondCompare

代码比较是日常开发经常需要做的工作&#xff0c;比如说源代码对比、文档对比&#xff0c;甚至是excel表格对比。 这里推荐三款免费的对比工具。 1、winMerge 下载地址&#xff1a;https://winmerge.org/downloads/?langen winMerge的大小只有7M&#xff0c;轻量级&#xf…

开发者需要的 9 款代码比较工具

对于经常写代码&#xff0c;又改代码的程序员来说&#xff0c;如果之前写的代码&#xff0c;过了很久又需要改&#xff0c;那么查找不同之处相当困难。如果这时候有一款代码比较工具&#xff0c;将会非常方便。W3Cschool 资深用户归纳总结 9 款常用的代码比较工具&#xff0c;赶…

9款优秀的代码比对工具

我们知道两个文件之间&#xff0c;或者同一个文件的不同版本之间经常需要做内容比对。在 Windows下有个很强大的工具叫作 BeyondCompare &#xff0c;那在 Linux下需要用到什么工具呢&#xff1f; 本文介绍 9 种 Linux 下常用的 9 种代码比对工具&#xff0c;不仅有命令行工具…

代码对比工具,我就用这6个

文章工具来源于微信公众号 IT星球 在程序开发的过程中&#xff0c;程序员会经常对源代码以及库文件进行代码对比&#xff0c;在这篇文章里我们向大家介绍六款程序员常用的代码比较工具 WinMerge WinMerge是一款运行于Windows系统下的文件比较和合并工具&#xff0c;使用它可…

Oracle中joint,什么是关节中心化(Joint centration)?

原标题&#xff1a;什么是关节中心化(Joint centration)? ⭕关节中心化(Joint centration) 想要有最佳的动作模式&#xff0c;就必须先有良好的关节中心化。良好的关节中心化要有好的神经肌肉的控制、好的关节面以及好的动力链所组成。一般来说&#xff0c;关节中心化就是稳定…

杵臼关节(发)

杵臼关节、 阿基米德、 多面体 1. 中国数学家华罗庚说过这样一段话:       「宇宙之大、粒子之微、火箭之速、化工之巧、地        球之变、生物之谜、日用之繁、无处不用数学。」 (《华罗庚科普著作选集》,上海教育出版社, 1984 ;原刊于 1959 年 5 月28日《人…

2021-12-25 infoGAN

Info-GAN: VAE-GAN: 真正的image image先ENCODER再DECODER产生 从nomal distribution中通过generator生成的 BiGAN: Autoencoder

InfoGAN 网络训练过程介绍

一、InfoGAN是什么 简单的讲&#xff0c;就是一种常见的GAN&#xff0c;是在普通的GAN的基础上增加Q网络&#xff0c;可以通过无监督学习的方式学到生成的数据的类别。 二、小故事 小D是一个很喜欢吃饺子的姑娘&#xff0c;喜欢吃不同的馅的饺子&#xff0c;而且对于饺子的要求…

InfoGAN 论文阅读笔记 基本知识总结

最近的一些工作是在使用InfoGAN&#xff0c;查看了一些资料&#xff0c;发现相关的资料并不是很多&#xff0c;所以&#xff0c;写了这个博客&#xff0c;一方面希望对最近两个周看到的文献进行一个归纳总结&#xff0c;另一方面希望遇到在做这方面的工作的大佬们&#xff0c;请…

机器学习-40-GAN-07-Feature Extraction(InfoGAN,VAE-GAN,BiGAN,Feature Disentangle(Voice Conversion))

文章目录 Feature ExtractionInfoGAN问题引出What is InfoGAN?结果 VAE-GANVAE-GANAlgorithm BiGANBiGANAlgorithmBiGAN架构设计解析 Triple GANDomain-adversarial trainingVoice Conversion(声音转换)Feature Disentangle(特征解耦) Feature Extraction 本节主要介绍InfoGA…

无监督式GAN(infoGAN) matlab实战

一、infoGAN原理简介 普通的GAN存在无约束、不可控、噪声信号z很难解释等问题。InfoGAN 主要特点是对GAN进行了一些改动&#xff0c;成功地让网络学到了可解释的特征&#xff0c;网络训练完成之后&#xff0c;我们可以通过设定输入生成器的隐含编码来控制生成数据的特征。InfoG…

InfoGAN论文理解及复现

InfoGAN论文理解及复现 by AHU Random_Walker 主要从四个方面来了解相关工作&#xff0c;即 MotivationRelated Work-MethodExperimentsConclusion 然后有三个过程来复现代码&#xff0c;最后的疑问算是对整个框架和代码细节问题的汇总吧 框架代码实现与结果总结与疑问 参…

[生成对抗网络GAN入门指南](10)InfoGAN: Interpretable Representation Learning by Information Maximizing GAN

本篇blog的内容基于原始论文InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets&#xff08;NPIs2016&#xff09;和《生成对抗网络入门指南》第六章。完整代码及简析见文章末尾 一、为什么要使用InfoGAN InfoGAN采用无监…

登堂入室__生成对抗网络的信息论扩展(infoGAN)(五)

简介 InfoGAN是生成对抗网络信息理论的扩展&#xff0c;能够以完全非监督的方式得到可分解的特征表示。它可以最大化隐含(latent)变量子集与观测值之间的互信息(mutual information)&#xff0c;并且发现了有效优化互信息目标的下界。 原论文地址&#xff1a;https://arxiv.org…

对抗生成网络学习(五)——infoGAN生成宽窄不一,高低各异的服装影像(tensorflow实现)

一、背景 前一阶段比较忙&#xff0c;很久没有继续做GAN的实验了。近期终于抽空做完了infoGAN&#xff0c;个人认为infoGAN是对GAN的更进一步改进&#xff0c;由于GAN是输入的随机生成噪声&#xff0c;所以生成的图像也是随机的&#xff0c;而infoGAN想要生成的是指定特征的图…

GAN生成对抗网络合集(三):InfoGAN和ACGAN-指定类别生成模拟样本的GAN(附代码)

1 InfoGAN-带有隐含信息的GAN InfoGAN是一种把信息论与GAN相融合的神经网络&#xff0c;能够使网络具有信息解读功能。 GAN的生成器在构建样本时使用了任意的噪声向量x’&#xff0c;并从低维的噪声数据x’中还原出来高维的样本数据。这说明数据x’中含有具有与样本相同…

InfoGAN 翻译

InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets翻译 摘要 本文描述了InfoGAN&#xff0c;它是生成对抗网络的信息论扩展&#xff0c;能够以完全无监督的方式学习分解表征。 InfoGAN是一种生成对抗网络&#xff0c;它…

【论文阅读】InfoGAN: Interpretable Representation Learning by Information Maximizing GAN

论文下载 bib: inproceedings{chenduan2016infogan,author {Xi Chen and Yan Duan and Rein Houthooft and John Schulman and Ilya Sutskever and Pieter Abbeel},title {InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Advers…

深度学习-李宏毅GAN学习之InfoGAN,VAE-GAN,BiGAN

深度学习-李宏毅GAN学习之InfoGAN&#xff0c;VAE-GAN&#xff0c;BiGAN 提出问题InfoGANVAE-GANBiGAN总结 提出问题 我们知道最基本的GAN就是输入一个随机的向量&#xff0c;输出一个图片。以手写数字为例&#xff0c;我们希望修改随机向量的某一维&#xff0c;能改变数字的特…

GAN及其变体C_GAN,infoGAN,AC_GAN,DC_GAN(一)

当时害怕篇幅过大&#xff0c;拆分两部分编写&#xff0c;下一篇文章见&#xff1a;GAN及其变体DCGAN, CGAN,infoGAN,BiGAN,ACGAN,WGAN,DualGAN&#xff08;二&#xff09; 在介绍GAN之前&#xff0c;我们先了解一些什么是生成模型(Generative Model)和判别模型&#xff08;Di…