Board logo

标题: [已结]求助批处理如何生成多行多列文件 [打印本页]

作者: in2dos     时间: 2008-12-26 17:43    标题: [已结]求助批处理如何生成多行多列文件

求助批处理如何生成多行多列文件
请教一个bat问题,请高手指教~!批处理入如下:
FOR /F %%i IN (D:\[url]www.txt)[/url] DO (FOR /F %%j IN (D:\dnsip.txt) DO (FOR /L %%a IN (1,1,3) DO dig @%%j %%i | find  "time" >>d:\dns-result\%%j%%i.txt))
我想做个批处理,生成一个文件,多行多列的,上面是我写的程序,不知道怎么改了,我目前只能生成多个文件,
www.txt内容如下:
www.yahoo.com.cn
www.chinatelecom.com.cn
www.163.com
www.taobao.com
www.baidu.com.cn
www.17173.com
www.sohu.com
www.xinhuanet.com
www.qq.com
www.sina.com.cn
www.tom.com
dnsip.txt内容如下:
1.1.1.1
2.2.2.2
3.3.3.3
我想得到的效果如下:
                                              1.1.1.1                  2.2.2.2           3.3.3.3
www.yahoo.com.cn                 132 msec         140 msec          144 msec
www.chinatelecom.com.cn      134 msec         140 msec          145 msec      
www.163.com                          142 msec         141 msec          143 msec
www.taobao.com                     140 msec         140 msec          143 msec
有高人指点一下么?
xxx msec 为dig * | find time的结果

[ Last edited by HAT on 2008-12-28 at 20:53 ]
作者: in2dos     时间: 2008-12-26 22:49
有高手么?探讨一下啊~自己顶先~!
作者: HAT     时间: 2008-12-26 23:13
能提供个dig的下载地址不?
作者: in2dos     时间: 2008-12-26 23:41
http://members.shaw.ca/nicholas.fong/dig/
还是版主好~呵呵
仔细研究一下上面我写的批处理,dig循环3次,每次输入内容如下:
;; Query time: 46 msec
;; Query time: 0 msec
;; Query time: 0 msec
表示在指定网址,指定dns dig 3次的结果,我本想dig 100次来看结果,我想要的输出只是 xx msec,前面的内容都是固定不变的,比较容易处理,所以也没有做什么过滤,如果dig 循环超过1次,其实是得不到我想要的矩阵结果的,dig 不做循环才能得到。但考虑到要多次dig,可以最终输出如下内容:
    1.1.1.1(163)     2.2.2.2(163)  1.1.1.1(qq)  2.2.2.2(qq)   ...........
1      143 msec         200 msec     0  msec           5 msec
2        0  msec          2 msec      0  msec           5 msec
3        0  msec          4 msec      0  msec           5 msec
4        30  msec        0 msec       0  msec           5 msec
5        0  msec          5 msec       0  msec           5 msec
6       0  msec           5 msec     0  msec           5 msec
7       0  msec           0 5 msec   0  msec           0 5 msec
.
.
.
还请版主一起来指教一下,感觉这个批处理还是有点难度的....
作者: in2dos     时间: 2008-12-27 00:14
我又改了改脚本,每个文件生成如下内容:
1.1.1.1www.tom.com
;; Query time: 734 msec
;; Query time: 156 msec
;; Query time: 156 msec



FOR /F %%i IN (D:\www.txt) DO
    (FOR /F %%j IN (D:\dnsip.txt) DO
        ( echo %%j%%i >d:\dns-result\%%j%%i.txt&&FOR /L %%a IN (1,1,3) DO
                                                     dig @%%j %%i | find  "time" >>d:\dns-result\%%j%%i.txt ))
作者: in2dos     时间: 2008-12-28 09:53
算了,求人不如求己,自己在网上找到类似的解决办法了。
批处理内容如下:
@echo off
cd.>>com.csv
set h=0
:h
if %h% GEQ 1 set "fc=skip=%h%"
set end=1
for /f %%i in ('dir /b *com*') do (
if not %%~nxi==com.csv set fi=%%~nxi&call:p
)

if %end%==0 echo.>>com.csv&set/a h+=1&goto h
pause
:p
for /f "eol=: %fc% delims=xxx" %%j in ('type %fi%') do (
set /p=%%j <nul>>com.csv
set end=0
set tab=0
echo %fi% %h% %tab%
goto :eof
)
if "%tab%"=="1" set /p= <nul>>com.csv
set tab=1