中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 02:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [急]求下列功能的一个批处理!!! 查看 904 回复 4
楼 主 [急]求下列功能的一个批处理!!! 发表于 2009-12-11 15:07 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
19年会员
UID 83832
性别 男
状态 离线
服务器共享一个文件,路径为\\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则退出。

麻烦那位高手不吝赐教!
2 看不懂 发表于 2009-12-11 21:49 ·  中国 江西 南昌 电信
新手上路
积分 8
发帖 8
注册 2009-08-28 04:21
16年会员
UID 151095
性别 男
状态 离线
讲简单些
3 发表于 2009-12-12 06:58 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@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 ]
4 有点问题 发表于 2009-12-12 21:45 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
19年会员
UID 83832
性别 男
状态 离线
代码似乎有些问题:
我调试了下,发现有个问题!
for /f %%i in ('findstr /b "%IP%" xing.txt') do (set han=%%j这里的%%j和%%k都不能显示出来,只有%%i能显示出来
5 发表于 2009-12-12 23:10 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@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

你看看这个
论坛跳转: