楼 主
指教:2个文本读取替换的批处理
发表于 2007-01-09 20:43 · 中国 辽宁 大连 联通
初级用户
★
积分 86 发帖 31 注册 2007-01-09 13:30 19年会员 UID 75960 性别 男
状态 离线
2个txt ip.txt和go.txt
ip.txt中是ip列表
192.168.1.1
192.168.1.32
192.168.2.3
192.168.1.4
等等
一行一个ip
go.txt中乱78糟 含myip
第1次运行批处理 go.txt中的myip被替换成192.168.1.1
第2次运行批处理 go.txt中的192.168.1.1被替换成192.168.1.32
第3次运行批处理 go.txt中的192.168.1.32被替换成192.168.2.3
依次类推
各位达人看看 怎么实现这个批处理?
感觉不是很难
第 2 楼
发表于 2007-01-09 21:17 · 中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725 发帖 1,160 注册 2006-09-23 12:00 19年会员 UID 63486 来自 河北廊坊
状态 离线
最好能把文本内容列出,并把结果说明白,不然很难得到好的代码。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
第 3 楼
发表于 2007-01-09 21:30 · 中国 辽宁 大连 联通
初级用户
★
积分 86 发帖 31 注册 2007-01-09 13:30 19年会员 UID 75960 性别 男
状态 离线
go.txt中原始内容
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "myip {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
第1次运行批处理 go.txt内容改为
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "192.168.1.1 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
第2次运行批处理 go.txt内容改为
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "192.168.1.32 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
第3次运行批处理 go.txt内容改为
set sh=WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
sh.SendKeys "192.168.2.3 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
依此类推
运行一次批处理 替换一次ip
[ Last edited by FBOAR on 2007-1-9 at 08:38 AM ]
第 4 楼
发表于 2007-01-09 21:59 · 中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725 发帖 1,160 注册 2006-09-23 12:00 19年会员 UID 63486 来自 河北廊坊
状态 离线
汗!还要检测批处理是第几次运行啊!还是请高手来解决吧。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
第 5 楼
发表于 2007-01-09 22:01 · 中国 辽宁 大连 联通
初级用户
★
积分 86 发帖 31 注册 2007-01-09 13:30 19年会员 UID 75960 性别 男
状态 离线
实现从上到下 依次替换的效果就ok了
不用检测第几次
还有个思路: 根据ip数量生成相应数量的go.txt
go1.txt内容:
set sh=WScript.CreateObject("WScript.Shell"
WScript.Sleep 1000
sh.SendKeys "
192.168.1.1 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
go2.txt内容:
set sh=WScript.CreateObject("WScript.Shell"
WScript.Sleep 1000
sh.SendKeys "
192.168.1.32 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
go3.txt内容
set sh=WScript.CreateObject("WScript.Shell"
WScript.Sleep 1000
sh.SendKeys "
192.168.2.3 {ENTER}"
WScript.Sleep 1000
sh.SendKeys "netstat"
WScript.Sleep 1000
依此类推
实现这种效果也行
[
Last edited by FBOAR on 2007-1-9 at 09:11 AM ]
第 6 楼
发表于 2007-01-09 23:53 · 中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725 发帖 1,160 注册 2006-09-23 12:00 19年会员 UID 63486 来自 河北廊坊
状态 离线
这样的话,下面的代码应该可以了:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (go.txt) do (
for /f "tokens=1,2 delims=:" %%i in ('findstr/n .* ip.txt') do (
set "str=%%a"
set "str=!str:myip=%%j!"
>>go%%i.txt echo !str!
)
)
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
FBOAR
+1
2007-01-10 00:16
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
第 7 楼
发表于 2007-01-10 00:18 · 中国 辽宁 大连 联通
初级用户
★
积分 86 发帖 31 注册 2007-01-09 13:30 19年会员 UID 75960 性别 男
状态 离线
第 8 楼
发表于 2007-01-10 01:24 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f %%i in (ip.txt) do (
for /f "delims=" %%a in (go.txt) do (
set "str=%%a"
set "str=!str:myip=%%i!"
echo !str!
)
echo;&echo ++++++++++++++++++&echo;
)
pause
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
FBOAR
+1
2007-01-12 04:11
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正