|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『楼 主』:
批处理按运行次数替换文档内容
问题
有两个文档a和b
a.txt内容如下
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
等等.............
b.txt里的内容乱七八糟,但没有特殊字符
要求:建立一批处理zzz.bat
第一次运行zzz.bat将b.txt中的myip换成a.txt中的第一行的内容,然后退出.
第二次运行zzz.bat将b.txt中的192.168.1.1换成a.txt中的第二行内容,然后退出
第三次运行zzz.bat将b.txt中的192.168.1.2又换成a.txt中的第三行内容,退出
依次类推............
[ Last edited by 26933062 on 2007-1-9 at 10:17 PM ]
|
|
2007-1-10 08:24 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
2 楼』:
居然又是在同一帖子里问两个不相干的内容,最后一次提醒你:不相干的问题不要放在同一个帖子中,最好一帖一问。否则,嘿嘿……
1、start "" "路径"
2、按照你所描述的规律,没法类推,请检查你的描述是否正确。
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-1-10 09:07 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
3 楼』:
不好意识,看来我还是不太懂这里的规矩,一定改正.
我觉得已经描述的很清楚了,难道这不是规律?
就是每次将上一次改的内容再改为这一次提取的a.txt的内容.
[ Last edited by 26933062 on 2007-1-9 at 08:52 PM ]
|
|
2007-1-10 09:47 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
4 楼』:
那第四次运行的时候,是把192.168.1.3替换掉呢,还是把192.168.1.2.3替换掉?第五次呢?……
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-1-10 10:01 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
5 楼』:
版主可能没看清我的问题,我在运行了第三次以后b.txt中就已经没有192.168.1.2了,因为192.168.1.2已经被替换成192.168.1.3了,那么第四次运行当然是把192.168.1.3替换为192.168.1.4
|
|
2007-1-10 10:49 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
6 楼』:
哦,看来确实是我理解错了一些地方,但是我觉得你描述的规律似乎是不能“依次类推”的,因为你第二次运行的时候,要替换的是 192.168.1 而非 192.168.1.1。
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-1-10 11:08 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
|
2007-1-10 11:17 |
|
|
xyzup
初级用户
积分 39
发帖 16
注册 2006-12-6
状态 离线
|
『第
8 楼』:
依我看来应该需要设一个变量,然后每次运行后'自加'并保存在一个特定的地方...
这个变量代表行数.也就是运行的次数!~~
大约这样吧!@!
具体就不会了,...其他兄弟看看怎样写吧
|
原谅我的无知 |
|
2007-1-10 12:24 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-1-11 01:16 |
|
|
corz
新手上路
积分 6
发帖 3
注册 2007-12-7
状态 离线
|
『第
10 楼』:
可以这么考虑,对两个文件进行比较,当第一行相同时,继续比较第二行,如果还相同就一直往下比较,不同的话,就将a文件的该行替换进b文件,执行一次退出。
下次再运行就会自动替换下一行了。
|
|
2007-12-16 09:12 |
|
|
ybxcyx
初级用户
积分 26
发帖 11
注册 2007-12-18
状态 离线
|
『第
11 楼』:
统计运行次数,就是相应行数已经解决,但如何在楼主说的b.txt中查找IP,并替换还在思考之中.文件中任意位置的ip地址,不依赖文本中的ip怎样查找并提取,替换呢?
|
|
2007-12-30 22:01 |
|
|
ybxcyx
初级用户
积分 26
发帖 11
注册 2007-12-18
状态 离线
|
『第
12 楼』:
可以统计bat文件运行次数
@ECHO OFF
if not exist 1.txt @ECHO On 0>1.txt
@ECHO OFF
setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt ) do (
set /a num+=1
if !num! equ 1 set var=%%i
)
set /a var=!var!+1
echo !var! >1.txt
echo 程序第!var!次运行!
pause
我是初学者,在这里学习有了一些收获.希望大家多帮助,多鼓励.
只要把上面代码加到程序前面,就可以统计运行次数,很有趣.
|
|
2007-12-31 22:57 |
|
|
ybxcyx
初级用户
积分 26
发帖 11
注册 2007-12-18
状态 离线
|
『第
13 楼』:
文件ReadLine2.Bat(这个是别人编的)
@echo off&SetLocal ENABLEDELAYEDEXPANSION
:::::::::::ReadLine2.Bat::::::::::::::::::
if "%1"=="" (goto --help) else (set file=%1)
if not exist %file% goto :eof
if "%2"=="" (
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%file%"') do echo/%%b
goto :eof
) else (
set args=%*
for %%a in (!args!) do (
if not "%%a"=="%1" (for /f "tokens=1* delims=:" %%b in ('findstr /n .* "%file%"') do (
if "%%b"=="%%a" echo/%%c&&echo/%%c>b.txt)
)
)
)
goto :eof
::%%c就是要读行的内容。怎样去查询与替换b.txt的myip!
按运行次数读取a.txt中相应行数.bat
echo on
if not exist 1.txt @ECHO On 0>1.txt
@ECHO OFF
setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt ) do (
set /a num+=1
if !num! equ 1 set var=%%i
)
set /a var=!var!+1
echo !var! >1.txt
Call ReadLine2 a.txt !var!
pause
|
|
2007-12-31 23:02 |
|