中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-08 08:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请大家帮忙修正这个脚本(请教了) 查看 715 回复 10
楼 主 请大家帮忙修正这个脚本(请教了) 发表于 2008-01-11 09:23 ·  中国 广东 深圳 龙岗区 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
hostname>host.ini
set /p host=<host.ini
del host.ini
for /f %%i in (list.ini) do "%host%"=="%%i" (echo OK) else (exit)
我想做到的是,在list.ini文件里的计算机名对比,存在的则执行下一条命令`不存在则推出`
当然这个list.ini文件有很多的计算机名`
对比能做到,但是不能判断是否退出`
也许是太多了吧`
真的不知道该怎么写了`
麻烦大家帮忙想想`

[ Last edited by zhitingkey on 2008-1-11 at 09:25 AM ]
2 发表于 2008-01-11 10:06 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
hostname执行结果和%computername%有区别吗?
hostname>host.ini
set /p host=<host.ini
del host.ini
find /i /x "%host%" list.ini >nul
if errorlevel 0 (echo OK) else (exit)

没区别

findstr /i /x %computername%" list.ini >nul
if errorlevel 0 (echo OK) else (exit)
第一高手 第二高手

3 发表于 2008-01-11 10:21 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
不好意思第2个代码漏写了个“
第一高手 第二高手

4 发表于 2008-01-11 10:32 ·  中国 广东 深圳 龙岗区 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
这个能执行下去么`
我试过好象不行`
不能执行下一行了`
5 发表于 2008-01-11 10:51 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
不是说了吗,第2个代码漏写了个“自己修改下呀
findstr /i /x "%computername%" list.ini >nul
if errorlevel 0 (echo OK) else (exit)
第一高手 第二高手

6 发表于 2008-01-11 11:08 ·  中国 广东 深圳 龙岗区 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
这个好象不能对比list.ini里面的计算机名哦`
我现在很头疼的就是根据对比判断是否退出`
7 发表于 2008-01-11 11:15 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
hostname
只能列出一个机器的名字,上面按照你的方法无论如何得到的都是 "ok"
8 发表于 2008-01-11 11:24 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
findstr /i /x "%computername%" host.ini || exit
echo 这里OK
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zhitingkey +1 2008-01-11 11:31
第一高手 第二高手

9 发表于 2008-01-11 11:32 ·  中国 广东 深圳 龙岗区 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
这个是对的,原来这样`受教了`
我积分少,所以我才加了一分`
你不会有意见吧`
10 发表于 2008-01-11 11:33 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
楼上代码可行,
不过LZ不可以用hostname >host.ini 来储存主机名
用hostname>>host.ini
不然host.ini里面主机名全部被覆盖,导致每次判断都为真!
11 发表于 2008-01-11 12:06 ·  中国 广东 深圳 龙岗区 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
谢谢`
学习了`
论坛跳转: