notepad++文件替换

c,d,e,f盘同一个目录下文件内容aa替换为bb
有300个cpp文件
比如c:/xx,d:/xx,e:/xx,f:/xx每次只能在一个目录下替换,改4 次目录麻烦
能不能把4个目录放到一起做一次替换就可以
尝试过都放一起;分号隔开 不识别没作用
bat脚本会更改源程序格式
python 不熟悉
有没有好其他办法或则推荐其它编辑软件

可以用bat创建符号链接,把别的盘的文件夹通过符号链接放到一个文件夹里。
举例在c:\test里创建符号链接,执行下面命令:

cd /d c:\test
mklink /j c c:\xx
mklink /j d d:\xx
mklink /j e e:\xx

之后notepad++在c:\test里查找替换即可。

import glob

def main():
    dirs = ['c:/xx', 'd:/xx', 'e:/xx', 'f:/xx']
    for dir in dirs:
        for filename in glob.glob(dir + '**/*.cpp', recursive=True):
            with open(filename, 'r') as file:
                filedata = file.read()
            filedata = filedata.replace('aa', 'bb')
            with open(filename, 'w') as file:
                file.write(filedata)

if __name__ == '__main__':
    main()

可以用C#或QT写个上位机程序来实现这个功能。

有VS20XX吗,比如VS2019
用VS2019新创建一个C++控制台项目,然后将每个盘上需要替换的cpp文件都添加进测试项目
接着用2019的替换功能,替换aa为bb

img

notepad++, 选中文件 鼠标右键 edit with notpad++,ctrl f , 我的notpad++版本是8.1.4, 最好选正则经行匹配, 比如你可能会把 aab, baa, baac, aaa 里的aa 都替换为bb了, 最好一步一步替换,软件光标会自动跳转到下一个匹配的字符

img

下面两张图是idea软件的方法, 不过idea软件体积太大
选中文件夹鼠标右键

img


这张图标记地方从上到下 1 匹配文件后缀 2 匹配大小写 完整词 正则 3 固定窗口中显示

img