中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 10:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于判断计算机名的启动批处理,请教! 查看 891 回复 5
楼 主 关于判断计算机名的启动批处理,请教! 发表于 2006-06-04 19:05 ·  中国 浙江 宁波 慈溪市 电信
初级用户
积分 34
发帖 12
注册 2006-06-04 18:42
UID 56544
状态 离线
是这样。上面要求网吧安装净网先锋,我把它的执行文件提出来,放在服务器上,利用客户机的启动批处理执行。 但是我只想让部分机子运行净网先锋,其他的客户机还是运行一个监视窗口的软件。 客户机系统是一起克出来的。
如果判断某个文件存在的话。我需要去一台台添加某个文件
在网上找到一个实例,利用机器名判断是否运行命令,但有个问题不会解决:
所有客户机启动都会执行\\user01上的up.bat 内容是:
@echo off
for /f "skip=1 tokens=1" %%N IN (\\user01\up$\name.ini) Do if %ComputerName%==%%N (
@echo 本台机器特殊!执行其他命令
call \\user01\up$\up1.bat
) Else (
@echo 此机执行正常命令
call \\user01\up$\up2.bat

)
服务器上up1.bat如下:

@echo off
start \\192.168.0.101\up$\禁止.exe
start \\user01\up$\净网文件\MainPro.exe
exit


服务器上up2.bat如下:
@echo off
start \\192.168.0.101\up$\禁止.exe
echo. & exit

name.ini内容如下:

[ComputerName]
AT11
AT10
上报完毕。
name.ini里存在的计算名的客户机就执行up1.bat 也就是运行净网先锋。 其他客户机运行禁止.exe
问题是:它只判断name.ini里第2行。AT11,AT10都写进name.ini里。 但是只有AT11会运行up1.bat, 把AT10写在上面,也只是AT10能运行。
怎么弄就只有一台能够附和运行up1.bat的条件

小弟刚学批处理。关于for的用法也是第一次使用。请求大家帮助! 感谢先。
2 发表于 2006-06-04 21:08 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 288
发帖 78
注册 2003-11-19 00:00
UID 13041
性别 男
状态 离线
Up1.bat和Up2.bat中不能加exit命令,加了就退出了,就不会返回到Up.bat了。
3 发表于 2006-06-04 21:41 ·  中国 浙江 宁波 慈溪市 电信
初级用户
积分 34
发帖 12
注册 2006-06-04 18:42
UID 56544
状态 离线
谢谢楼上的回复。但问题不是那样。
并不需要up1.bat up2.bat的返回值啊。
我的意思:判断本机的变良%ComputerName%然后和name.ini对照
如果存在就执行up1.bat 不存在就执行2.bat
4 发表于 2006-06-04 22:58 ·  中国 浙江 宁波 慈溪市 电信
初级用户
积分 34
发帖 12
注册 2006-06-04 18:42
UID 56544
状态 离线
5 发表于 2006-06-05 14:30 ·  中国 浙江 宁波 慈溪市 电信
初级用户
积分 34
发帖 12
注册 2006-06-04 18:42
UID 56544
状态 离线
顶顶顶顶顶。。。。。。。。。
6 发表于 2006-06-06 10:51 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
UID 43784
来自 北京
状态 离线
似乎问题就出在EXIT命令上,我看up.bat并没有什么太大的问题,由于没有条件测试请原谅.......
论坛跳转: