![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 22:25 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » [转贴]reg文件转换成bat文件 |
| 可打印版本 1,216 / 6 |
| 第1楼 kida | 发表于 2008-01-14 16:46 |
| 初级用户 发帖 63 积分 139 | |
|
[转贴]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); } 附件 reg2bat.rar (8.8 KiB) |
|
| 第2楼 haiou327 | 发表于 2008-01-19 19:32 |
| 高级用户 发帖 348 积分 713 | |
|
我用REG2CMD
|
|
| 第3楼 liumingqing | 发表于 2008-01-20 10:56 |
| 初级用户 发帖 73 积分 136 | |
|
樓主辛苦了.謝謝提供!
|
|
| 第4楼 tjstktjstk | 发表于 2008-01-20 11:58 |
| 新手上路 发帖 1 积分 2 | |
|
1111111111111111111111111111111111111111111111111111111111111111
|
|
| 第5楼 japcheng | 发表于 2008-01-23 00:29 |
| 新手上路 发帖 5 积分 4 | |
|
reg文件是注册表文件,双击后即可执行,没有必要再把它转成BAT文件,如需合并reg文件,只要用记事本打开全部剪切到一起即可
|
|
| 第6楼 zac2008 | 发表于 2008-01-27 19:49 |
| 新手上路 发帖 5 积分 10 | |
|
谢谢分享!!
|
|
| 第7楼 Rulition | 发表于 2008-01-28 22:53 |
| 初级用户 发帖 11 积分 26 | |
|
regedit /s 注册表文件.reg 合并时不要"确定" regedit /s 注册表文件.reg 合并时不要"确定"
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |