导出含有特定字符串的注册表

需求:我导出一份注册表,想导出每个含有TheBest字符串的注册表命令,符合条件的命令却有几十条。于是我不再一条一条导出,准备用c#实现这样的需求。

实现:每个命令的行数不特定,但命令与命令间间隔了两行,于是可以从\r\n\r\n跟\r\n\r\n这样的规律字符中提取出命令,再检测命令是否符合条件,符合则保存到新建的文件中,否则跳过此条命令。

            string filecontent = System.IO.File.ReadAllText(@"D:\单机安装\my.txt");
            int i = 0;
            int j = 0;          //用换行符划分字符串
            while ((i = filecontent.IndexOf("\r\n\r\n", i)) != -1)
            {
                // j = i + 1;
                j = filecontent.IndexOf("\r\n\r\n", i);
                if (j == i)
                {
                    i++;
                    j = filecontent.IndexOf("\r\n\r\n", i);
                }
                //检测划分出来的字符串是否含有特定字符“TheBest”
                if (filecontent.Substring(i + 1, j - i - 1).IndexOf("TheBest") > -1)
                {
                    Console.WriteLine(filecontent.Substring(i + 1, j - i - 1));
                    i++;
                    //指定日志文件的目录
                    string fname = "D:\\单机安装 " + "\\logfile.txt ";
                    //定义文件信息对象
                    FileInfo finfo = new FileInfo(fname);

                    //创建只写文件流
                    using (FileStream fs = finfo.OpenWrite())
                    {
                        //根据上面创建的文件流创建写数据流
                        StreamWriter w = new StreamWriter(fs);
                        //设置写数据流的起始位置为文件流的末尾
                        w.BaseStream.Seek(0, SeekOrigin.End);
                        //写入内容并换行
                        w.Write(filecontent.Substring(i + 1, j - i - 1) + "\r\n\r\n");
                        //清空缓冲区内容,并把缓冲区内容写入基础流
                        w.Flush();
                        //关闭写数据流
                        w.Close();
                    }

                }

            }
            Console.ReadKey();

        }

  

时间: 2024-08-10 21:20:32

导出含有特定字符串的注册表的相关文章

Linux查找含有特定字符串的文件

Linux查找含有特定字符串的文件命令为grep.以下为详细的使用方法 grep [OPTIONS] PATTERN [FILE...] #实例:递归查找当前文件夹下所有含有test的文件,并显示行号 grep -rn "test" * -r 递归查找 -n 显示行号 -i 忽略大小写 -w 只匹配整个单词,而不是字符串的字部分(如pattern为"test", 不匹配"test1"或"atest") -C num 显示匹配到

(转:收藏)怎样把数据库连接字符串存入注册表中

如果我们将连接数据库的信息存入注册表中,就能极大地提高连接信息的安全性.本文就是介绍如何将连接数据库的信息存储到注册表中,以提高数据库连接信息的安全性. 数据库的连接字符串是用数据库开发所必须的信息,我们通过连接字符串连接数据库,并进行各种数据库操作.本文提供的是把数据库连接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的情况下是没有权限来对注册表进行操作的,那么用来连接数据库的账户信息便安全许多. 一.在

【mysql】存储过程,查询指定数据库、具体编码类型含有某字符串的所有表名和列名

1.需求:就是想在一个数据库中查找存在某字符串的表和列: 2.例子,我这里my_test数据库有3张表,test_replace的name.password列有张三字符串,t1表的name.city列也有张三字符串,t_user表就没有张三字符串. 运行结果 t1,name;t1,city;test_replace,name;test_replace,password 符合要求 3.代码 -- 1.将mysql分隔符从;设置为& DELIMITER & -- 2.如果存在存储过程getCo

Windows注册表的学习

什么是注册表 注册表是Windows在Win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息.参数等.直接控制着系统的启动.硬件的装载以及Winodws程序的运行 手册表的功能 记录用户安装在计算机上的软件和每个程序的相关信息,通过他可以控制硬件.软件.用户环境和操作系统界面的数据信息文件. 注册表的结构 快捷键regedit可以打开注册表,查看详细的结构 不同机器注册表结构 win7 ? win10 ? win08 ? 可以看到大部分机器的注册表的根键是差不多的. 简单结构 根

Win.ini和注册表的读取写入

Win.ini文件的读写 PlatForm SDK的WriteProfileString()函数可以写入一个字符串到Win.ini文件的制定段中 PlatForm SDK的GetProfileString()函数可以从Win.ini文件中获得指定的段中制定键的字符串信息. /**************************************************************************                    往WIN.ini文件中写入内容和读取

电脑注册表是做什么的?怎么清理注册表中的垃圾文件?

注册表是Windows系统中非常重要的一个内容,里面存储着许多重要的数据,当然也会产生很多垃圾文件,从而占用电脑的内存空间.定期的清理注册表可以对电脑进行"瘦身",加快电脑的运行效率.但是清理注册表一定要采用科学的方法,否则可能会影响软件程序的运行,甚至导致系统的瘫痪.下面就为大家介绍一下注册表的相关内容.电脑注册表是什么?注册表英文名是Registry,也叫登录档,是Microsoft Windows系统中的一个重要的数据库,用于存储系统和应用程序的设置信息.意思就是,如果你安装了一

利用正則表達式排除特定字符串

本文转载自:http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html 查找不以baidu开头的字符串 baidu.comsina.com.cn 正则:^(? !baidu).*$  匹配结果就是第2行.也就是第1行被排除了这里使用了零宽度断言(?!exp),注意.我们有一个向前查找的语法(也叫顺序环视)  (?=exp)(?=exp) 会查找exp之前的[位置]假设将等号换成感叹号.就变成了否定语义,也就是说查找的位置的后面

用批处理读取特定注册表项的路径值

用批处理命令查询注册表项的命令为 REG QUERY ... 具体的使用信息在命令行窗口中输入 REG QUERY /? 在这里我们需要查询一个具体的key-value,则使用下面的命令 REG QUERY [REG PATH] /v [KEY] 举个例子 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\ClientSetup" /v "Path" 显示结

数据库所有表替换所有列的特定字符串

DECLARE @TableName VARCHAR(119) DECLARE @TableID INT DECLARE @ColName VARCHAR(111) DECLARE Table_Cursor CURSOR FOR SELECT [name],id FROM sysobjects WHERE xtype='U'; OPEN Table_Cursor; FETCH NEXT FROM Table_Cursor INTO @TableName,@TableID; WHILE(@@FET