中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [转贴]reg文件转换成bat文件 上一主题 | 下一主题
kida
初级用户




积分 139
发帖 63
注册 2007-10-20
状态 离线
『楼 主』:  [转贴]reg文件转换成bat文件

经常用到一些.reg文件,觉得合并时老是要确定有点麻烦,于是写了个可以把.reg文件转换成同样效果的C 程序

转换后如果出现乱码,那是因为编码的问题,只需把需要转换的.reg文件的内容复制到一个新件的文本文件再转换即可


#include "stdio.h"
#include "stdlib.h"
void main()
{
char oriname[40],tarname[40];
char ch,ah;
FILE *fp1,*fp2;
while(1)
{ clrscr();
printf("The filename is not more than 8 characters \n\n");
printf("Original file(*.reg): ");
scanf("%s",oriname);
if((fp1=fopen(oriname,"r"))==NULL)
{ clrscr();
printf("Can not find the special file, try again?[Y/N] [ ]\b\b");
do
{
ch=getche();
if(ch!='y'||ch!='Y'||ch!='n'||ch!='N')
{ clrscr();
printf("Can not find the special file, try again?[Y/N] [ ]\b\b");
}
}while(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y') ;
if(ch=='y' || ch=='Y')
continue;
else
return;
}
else break;

}
printf("\nTarget file (*.bat): ");
scanf("%s",tarname);
if((fp2=fopen(tarname,"w"))==NULL)
{printf("Can not create the file!!\n");
getch();
return;
}

while(!feof(fp1))
{ ah=fgetc(fp1);
if(ah==10||ah==' ')
continue;
else
break;
}
fprintf(fp2,"@echo off");
fputc(10,fp2);
fprintf(fp2,"echo ");
if(ah=='>'||ah=='^'||ah=='<'||ah=='&'||ah=='|'||ah=='%')
{ if(ah=='>')
{ fputc('^',fp2);
fputc('>',fp2);
}
if(ah=='<')
{ fputc('^',fp2);
fputc('<',fp2);
}
if(ah=='^')
{ fputc('^',fp2);
fputc('^',fp2);
}
if(ah=='&')
{ fputc('^',fp2);
fputc('&',fp2);
}
if(ah=='|')
{ fputc('^',fp2);
fputc('|',fp2);
}
if(ah=='%')
{ fputc('%',fp2);
fputc('%',fp2);
}
}
else
{ if(ah=='')
fprintf(fp2,">>#@$5e8.reg");
else
fputc(ah,fp2);
}
while(!feof(fp1))
{ ah=fgetc(fp1);


if(ah==10)
{
{fprintf(fp2,">>#@$5e8.reg");
fputc(ah,fp2);
}
while(!feof(fp1))
{ ah=fgetc(fp1);
if(ah==10||ah==' ')
continue;
else
break;
}
if(ah=='')
break;
fprintf(fp2,"echo ");
}
if(ah=='>'||ah=='^'||ah=='<'||ah=='&'||ah=='|'||ah=='%')
{ if(ah=='>')
{ fputc('^',fp2);
fputc('>',fp2);
}
if(ah=='<')
{ fputc('^',fp2);
fputc('<',fp2);
}
if(ah=='^')
{ fputc('^',fp2);
fputc('^',fp2);
}
if(ah=='&')
{ fputc('^',fp2);
fputc('&',fp2);
}
if(ah=='|')
{ fputc('^',fp2);
fputc('|',fp2);
}
if(ah=='%')
{ fputc('%',fp2);
fputc('%',fp2);
}
}
else
{ if(ah=='')
fprintf(fp2,">>#@$5e8.reg");
else
fputc(ah,fp2);
}
}
fprintf(fp2,"regedit /s #@$5e8.reg");
fputc(10,fp2);
fprintf(fp2,"del #@$5e8.reg");
fclose(fp1);
fclose(fp2);
}

附件 1: reg2bat.rar (2008-1-14 16:46, 8.8 K,下载次数: 108)
2008-1-14 16:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
haiou327
高级用户

DOS时空


积分 713
发帖 348
注册 2007-2-10
状态 离线
『第 2 楼』:  

我用REG2CMD



欢迎进入我的网盘!!!
2008-1-19 19:32
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (52688226)  编辑帖子  回复  引用回复
liumingqing
初级用户





积分 136
发帖 73
注册 2007-4-2
状态 离线
『第 3 楼』:  

樓主辛苦了.謝謝提供!

2008-1-20 10:56
查看资料  发送邮件  发短消息 网志  OICQ (362774158)  编辑帖子  回复  引用回复
tjstktjstk
新手上路





积分 2
发帖 1
注册 2008-1-20
状态 离线
『第 4 楼』:  

1111111111111111111111111111111111111111111111111111111111111111

2008-1-20 11:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
japcheng
新手上路





积分 4
发帖 5
注册 2007-12-21
状态 离线
『第 5 楼』:  

reg文件是注册表文件,双击后即可执行,没有必要再把它转成BAT文件,如需合并reg文件,只要用记事本打开全部剪切到一起即可

2008-1-23 00:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zac2008
新手上路





积分 10
发帖 5
注册 2008-1-25
状态 离线
『第 6 楼』:  

谢谢分享!!

2008-1-27 19:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Rulition
初级用户





积分 26
发帖 11
注册 2008-1-27
状态 离线
『第 7 楼』:  regedit /s 注册表文件.reg 合并时不要"确定"

regedit /s 注册表文件.reg 合并时不要"确定"

2008-1-28 22:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: