中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [急]求下列功能的一个批处理!!!
作者:
标题: [急]求下列功能的一个批处理!!! 上一主题 | 下一主题
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『楼 主』:  [急]求下列功能的一个批处理!!!

服务器共享一个文件,路径为\\server\password\password.txt,里面的内容如下:(第一列IP地址,第二列密码,第三列标示符)
192.168.1.2        aa2222        1
192.168.1.3        aa3333        1
192.168.1.4        aa4444        0
192.168.1.5        aa5555        1
192.168.1.6        aa6666        0
192.168.1.7        aa2222        1
192.168.1.8        aa3333        0
192.168.1.9        aa4444        0
192.168.1.10        aa5555        1
192.168.1.11        aa6666        1
192.168.1.12        aa3333        1
192.168.1.13        aa4444        0
192.168.1.14        aa5555        1
192.168.1.15        aa6666        1
192.168.1.16        aa2222        1
192.168.1.17        aa3333        0
192.168.1.18        aa4444        1
192.168.1.19        aa5555        0
192.168.1.20        aa6666        1
现求一个批处理,此批处理放在客户端,实现的功能如下:
第一步:先读出自己的IP地址,再根据自己的IP地址去服务器的password.txt查找对应的IP地址,网络不通或找不到password.txt文件提示错误信息并跳到第三步执行。找到的话执行第二步

第二步:读出相应的标示符,如果是1,则提示输入密码,并将用户输入的密码与文本中的密码列比较,密码正确执行A命令,错误退出;如果标示是0,则不需要输入密码直接执行A命令。

第三步:在本机上也放置一个password.txt,格式如下:
192.168.1.2                1
192.168.1.3                1
192.168.1.4                0
192.168.1.5                1
192.168.1.6                0
192.168.1.7                1
192.168.1.8                0
192.168.1.9                0
192.168.1.10                1
192.168.1.11                1
192.168.1.12                1
读出标示,如果为1则执行B命令;如果为0则退出。

麻烦那位高手不吝赐教!

2009-12-11 15:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhp1996
新手上路





积分 8
发帖 8
注册 2009-8-28
状态 离线
『第 2 楼』:  看不懂

讲简单些

2009-12-11 21:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2,* delims=.: " %%i in ('Ipconfig') do if /i "%%i"=="IP" set "IP=%%k"
copy \\server\password\password.txt xing.txt
if errorlevel 1 echo 出错&goto ye
for /f "tokens=1,2,3" %%i in ('findstr /b "%IP%" xing.txt') do (set han=%%j
if "%%k"=="0 (a.exe) else (
set /p gu=请输入密码
if "!gu!"=="!han!" (a.exe) else exit
))
goto :eof
:ye
for /f "tokens=1,2" %%i in ('findstr /b "%IP%" c:\password.txt) do if "%%j"=="1" (b.exe) else exit
本代码未经测试,请自行验证!

[ Last edited by Hanyeguxing on 2009-12-12 at 23:09 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-12-12 06:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 4 楼』:  有点问题

代码似乎有些问题:
我调试了下,发现有个问题!
for /f %%i in ('findstr /b "%IP%" xing.txt') do (set han=%%j这里的%%j和%%k都不能显示出来,只有%%i能显示出来

2009-12-12 21:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2,* delims=.: " %%i in ('Ipconfig') do if /i "%%i"=="IP" set "IP=%%k"
copy \\server\password\password.txt xing.txt
if errorlevel 1 echo 出错&goto ye
for /f "tokens=1,2,3" %%i in ('findstr /b "%IP%" xing.txt') do (set han=%%j
if "%%k"=="0 (a.exe) else (
set /p gu=请输入密码
if "!gu!"=="!han!" (a.exe) else exit
))
goto :eof
:ye
for /f "tokens=1,2" %%i in ('findstr /b "%IP%" c:\password.txt) do if "%%j"=="1" (b.exe) else exit
你看看这个



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-12-12 23:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: