Board logo

标题: [急]求下列功能的一个批处理!!! [打印本页]

作者: wfyinghun     时间: 2009-12-11 15:07    标题: [急]求下列功能的一个批处理!!!
服务器共享一个文件,路径为\\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则退出。

麻烦那位高手不吝赐教!

作者: yhp1996     时间: 2009-12-11 21:49    标题: 看不懂
讲简单些

作者: Hanyeguxing     时间: 2009-12-12 06:58
@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 ]

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

作者: Hanyeguxing     时间: 2009-12-12 23:10
@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

你看看这个