当前位置: 首页 >> 原创·技术 >> 201503111714 BAT批处理实现注册表查找替换 >> 正文

201503111714 BAT批处理实现注册表查找替换

8年前 (2015-03-11)     作者:iMoke     分类:原创·技术     阅读次数:4827     评论(3)    

酒店需要更换外网邮件服务器,原来的pop和smtp是一个,而新的服务器是两个。

酒店一共有50多个拥有外网邮箱的员工,如果一个一个更换,很累。

通过技术查找,查明OE的配置文件保存在注册表中。

故决定使用批处理文件批量实现员工电脑的配置变更。


经过两天的努力,用批处理(bat)实现注册表的查找与替换功能,终于实现了。

前提:

酒店需要更换外网邮件服务器,

原来的邮件服务器,pop协议和smtp协议在一台服务器上,都是mail.imoke.org域名。

而新的企业邮箱,把这两个协议区分开,放到两个服务器上了。一个用pop.imoke.org,一个用stmp.imoke.org。


酒店一共有50多个拥有外网邮箱的员工,如果一个一个更换,很累。

通过技术查找,查明OE的配置文件保存在注册表中。

故决定使用批处理文件批量实现员工电脑的配置变更。

代码如下:

2015年3月12日 09:47:51最终版:

@echo off
setlocal enabledelayedexpansion
:: 中断当前OE进程
taskkill /f /im msimn.exe
::检测是否更新过
cls
if exist "D:\HS\imoke\mailok.imoke" (
echo.
echo 您已更新过,重启Outlook Express测试。如果仍有问题,请联系电脑房,电话 3848,3818
echo.
echo 按任意键退出程序并重启Outlook Express......
pause>nul
start msimn.exe
exit
)
:begin
::定义注册表路径循环
for /l %%a in (1,1,5) do (
Set "regpath=HKCU\Software\Microsoft\Internet Account Manager\Accounts\0000000%%a"

::查找定义
Set "findstr1=POP3 Server"
Set "findstr2=SMTP Server"
Set "find1=mail.rosedalesy.com.cn"
Set "find2=mx8.dns.com.cn"
Set "newpop=pop.rosedalesy.com.cn"
Set "newsmtp=smtp.rosedalesy.com.cn"
Set a=""

echo 搜索%%a
echo !regpath!
for /f "tokens=1* delims=_" %%1 in ('reg query "!regpath!" /v "!findstr1!" ^| findstr /i "!findstr1!"') do for /f "tokens=1*" %%3 in ("%%~2")do Set "a=%%4"
echo a=!a!
echo find=!find1!
	::如果相同则替换
	if "!a!"=="!find1!" (
		echo 执行修改1
		echo !regpath!
		echo findstr1=!findstr1!
		echo findstr2=!findstr2!
		echo newpop=!newpop!
		echo newsmtp=!newsmtp!	
		reg add "!regpath!" /v "!findstr1!" /t REG_SZ /d !newpop! /f
		reg add "!regpath!" /v "!findstr2!" /t REG_SZ /d !newsmtp! /f
		)
	if "!a!"=="!find2!" (
		echo 执行修改2
		echo !regpath!
		echo findstr1=!findstr1!
		echo findstr2=!findstr2!
		echo newpop=!newpop!
		echo newsmtp=!newsmtp!	
		reg add "!regpath!" /v "!findstr1!" /t REG_SZ /d !newpop! /f
		reg add "!regpath!" /v "!findstr2!" /t REG_SZ /d !newsmtp! /f
		)
echo 查找%%a结束

)
)
cls
md D:\HS\imoke\
echo %date% %time% 更新完成,按任意键退出。>>D:\HS\imoke\mailok.imoke
start msimn.exe
pause>nul
exit

经测试,无论电脑账户多少,都可以自动执行替换,不修改其它配置,安全无害。


参考资料:

  1. http://tieba.baidu.com/p/584164771

  2. http://www.jb51.net/article/31284.htm

  3. http://www.jb51.net/article/17928.htm

  4. cmd自带帮助(/?)


马上下班了,今天累的眼睛都快看不见了。

这样不行……

爱生活,爱自己。

除非注明,发表在“傲孤漠客”的文章『201503111714 BAT批处理实现注册表查找替换』版权归iMoke所有。 转载请注明出处为“本文转载于『傲孤漠客』原地址https://www.imoke.org/post/20150311848.html

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站