首页 新闻 会员 周边 捐助

winform怎么获取CMD输出值 ,

0
悬赏园豆:100 [已解决问题] 解决于 2013-09-02 15:03

最近在做一个功能 , 就是用bat获取局域网内所有在线Ip地址 ,然后需要对应这些Ip地址修改数据库 , 怎么用winform获取bat获取的IP地址?

这个是我找的bat 比如说网段是9的Ip

@echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
setlocal enabledelayedexpansion
:: iqp -> 内网IP的前3位,ip1 -> 起始ip,ip2 -> 结束ip
set ipq=192.168.9
set /a ip1=1
set /a ip2=255
set /a con=0
set /a contotal=%ip2%-%ip1%+1
for /l %%i in (!ip1!,1,!ip2!) do (
        set ip=!ipq!.%%i
        echo 扫描!ip!
        ping !ip! -n 1 -w 1 >nul
        if !errorlevel! equ 0 (
                for /f "tokens=1" %%j in ('nbtstat -a !ip! ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%j
                for /f "tokens=4 delims=* " %%j in ('nbtstat -a !ip! ^| find /i "MAC Address"') do set mac=%%j
                echo !ip!>>info.txt
                set /a con=!con!+1
        )
)

我把获取到的Ip导入到info的文本文档里面 , 有没有更好的办法直接从bat获取IP在自动修改数据库  而不用导入到文本文档这个过程 ?

Heaven空白的主页 Heaven空白 | 初学一级 | 园豆:3
提问于:2013-05-02 14:43
< >
分享
最佳答案
1
收获园豆:100
会长 | 专家六级 |园豆:12463 | 2013-05-02 14:53
其他回答(2)
0

echo !ip!>>info.txt

这一句就是将结果保存到info.txt这个文件里去了,你直接读取这个文件就可以了

弹琴小虎 | 园豆:194 (初学一级) | 2013-05-02 15:46

那怎么用winform自动执行bat  而不是鼠标双击 ?

支持(0) 反对(0) Heaven空白 | 园豆:3 (初学一级) | 2013-05-02 16:31

@空白桑: 你可以用个定时器,然后每过几秒自动执行下边的代码

 

System.Diagnostics.Process.Start("cmd", fileName);//fileName是你bat文件的全路径。

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2013-05-06 17:27

@空白桑: 其实你完全可以使用Process替代上面的批处理,通过Process的输入输出重定向就可以轻松解决自动处理的问题

支持(0) 反对(0) 弹琴小虎 | 园豆:194 (初学一级) | 2013-05-08 22:56
0

如上所言,我试了下,扫描到了就会保存在本地的相对文件夹下的一个info.txt文件下,你直接在你的winform程序里面调用这个bat,然后读取该txt文件撒

twistting | 园豆:575 (小虾三级) | 2013-05-02 19:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册