找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18136|回复: 0

[文本处理] 局域网内批量启动服务并导入符合条件注册表的批处理如何优化?

[复制链接]
发表于 2012-5-10 17:28:02 | 显示全部楼层 |阅读模式
前提局域网内都开启了远程注册表服务

例本机 IP 为 192.168.1.101

1、局域网内批量启动服务并导入符合条件注册表
2、192.168.1.100 注册表 Hosts 也许有这样显示内容 -192.168.1.103,+192.168.1.100,-192.168.1.101,?192.168.1.102,+ (+允许访问,-拒绝访问,?仅查询)
2、192.168.1.103 注册表 Hosts 也许有这样显示内容 +192.168.1.100,?192.168.1.102+
3、如发现对方注册表里有  "-本机IP," 则删除 "-本机IP," 这一段后,再导入对方注册表. 或变为 "+本机IP,"

现在的做法是把注册表内容导出到对应文本里,去掉 -192.168.1.101, 这一段, 再导回对应 IP 注册表
目的:能不能不导出到文本,直接导入对方注册表,结果为如:
192.168.1.100 注册表 -192.168.1.103,+192.168.1.100,?192.168.1.102,+
192.168.1.103 注册表没有 -192.168.1.101, 则不变
高手帮助优化下代码
  1. del/q tem_*
  2. set "ip1=100"&set "ip2=103"&set "ip3=192.168.1."
  3. for /l %%a in (%IP1%,1,%IP2%) do (
  4.   ping %ip3%%%a -n 1 |find/i "ms">nul&&for /f "tokens=2* delims=: " %%i in ('sc \\%ip3%%%a qc 服务名^|find /i "START_TYPE"') do (
  5.   if "%%i"=="4" sc \\%ip3%%%a config 服务名 start= auto >nul&&sc \\%ip3%%%a start 服务名 >nul&&echo 禁用启用: %ip3%%%a
  6.   if "%%i" LSS "4" sc \\%ip3%%%a start 服务名>nul&&echo 服务启动: %ip3%%%a
  7.   for /f "tokens=3" %%v in ('reg query \\%ip3%%%a\HKEY_LOCAL_MACHINE\SOFTWARE\注册表名 /v Hosts^|find /i "-本机IP,"') do (
  8.   set "str=%%v"
  9.   setlocal enabledelayedexpansion
  10.   echo !str:-%ip%,=!
  11.   endlocal
  12. )>tem_%ip3%%%a.txt&&for /f %%k in (tem_%ip3%%%a.txt) do reg add \\%ip3%%%a\HKEY_LOCAL_MACHINE\SOFTWARE\注册表名 /v Hosts /t REG_SZ /d %%k /f >nul
  13. ))
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:00 , Processed in 0.016382 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表