中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 15:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 动态调整网吧客户机的启动项,方便维护管理!! 查看 980 回复 8
楼 主 动态调整网吧客户机的启动项,方便维护管理!! 发表于 2007-05-18 11:02 ·  中国 河南 郑州 联通
初级用户
积分 48
发帖 20
注册 2006-12-02 00:10
19年会员
UID 72303
性别 男
状态 离线
网吧有200多台机器我想让电脑开机动态调整他的启动项,具体实现方法
电脑开机判断自己的名字是不是存在于服务器上config.ini配置文件中。如果在config.ini中存在自己的名字,
那么bat批处理接着往下面执行程序,如果没有程序就退出。主要有使用的两个文件,一个bat批处理本身,另外
就是配置文件config.ini
程序bat代码
----------------
for /f "skip=1 tokens=1" %%N IN (\\173.16.0.250\网管盘$\jw\Config.ini) Do if %ComputerName%==%%N
(
start \\173.16.0.250\网管盘$\jw\jw1.exe
) Else (
@echo 本台机器今天不运行程序
)



注释----------------
\\173.16.0.250\网管盘$\jw\Config.ini 这个是服务器上面的config.ini文件,隐藏可写共享
\\173.16.0.250\网管盘$\jw\jw1.exe jw1这个是我想要执行的程序。
----------------
具体的config文件的内容格式是
----------------

ex-011
ex-013
ex-012
ex-014
ex-015
ex-016
ex-017
ex-018

每行一个机器的名字,这样可以动态的调整下面的那台机器要运行程序,那台不要运行。现在客户机每台机器上都有一个启动项,用来执行上面的那个bat
但是这个bat好象有问题一直不能执行希望各位高手给于指点!!!



─────────────────── 版务记录 ────────────────────
执行:lxmxn
标题:各位版主,各位老大,各位高手,帮帮我!!
说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
提示:修改标题请在当前帖的右下脚点 编辑,修改完毕之后按 编辑帖子 即可。
处罚:若三日之后尚未修改标题,将扣除2点积分,
   以示惩罚,并由版主强制修改标题。请点击这里阅读论坛发帖规定或者查看
   提问的智慧,以避免在今后的讨论中违规发帖。
─────────────────── 版务记录 ────────────────────


[ Last edited by shenbaise on 2007-5-18 at 12:34 PM ]
2 发表于 2007-05-18 11:12 ·  中国 北京 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
19年会员
UID 82683
性别 女
状态 离线

type \\173.16.0.250\网管盘$\jw\Config.ini|findstr /r "^%computername%$" 1>nul 2>&1||goto:eof
start "" \\173.16.0.250\网管盘$\jw\jw1.exe
3 发表于 2007-05-18 11:37 ·  中国 河南 郑州 联通
初级用户
积分 48
发帖 20
注册 2006-12-02 00:10
19年会员
UID 72303
性别 男
状态 离线
好象不行啊
4 发表于 2007-05-18 11:52 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
config文件没问题 ?

每行没多出空格之类的??

而且你的代码是怎么不行?

运行的结果是什么。都没说清楚
5 发表于 2007-05-18 11:55 ·  中国 河南 郑州 联通
初级用户
积分 48
发帖 20
注册 2006-12-02 00:10
19年会员
UID 72303
性别 男
状态 离线
知道了原来还要大小写一致
多谢2楼的了
6 发表于 2007-05-18 11:56 ·  中国 河南 郑州 联通
初级用户
积分 48
发帖 20
注册 2006-12-02 00:10
19年会员
UID 72303
性别 男
状态 离线
多谢大家关心!!!
但是不知道我原来的那个代码错在那里!!高手指点下!
7 发表于 2007-05-18 12:14 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
@echo off
for /f "skip=1" %%N IN (Config.ini) Do if %ComputerName%==%%N (echo %%N) Else (echo 本台机器

今天不运行程序)
pause


运行的结果是:
---------------------------------
本台机器今天不运行程序
本台机器今天不运行程序
本台机器今天不运行程序
本台机器今天不运行程序
HZIC
本台机器今天不运行程序
本台机器今天不运行程序

----------------------------------
Config.ini内容:】
-------------
dfsdf
dfasdf
adfdf
adfdf
adf
HZIC
dfsdf
dfdf
----------
8 发表于 2007-05-18 12:21 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
ELSE 子句必须在 IF 之后出现在同一行上。例如:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)

因为 del 命令需要用一个新行终止,以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也
不会有效:

IF EXIST filename. del filename.
ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

IF EXIST filename. (del filename.) ELSE echo filename. missing
9 发表于 2007-05-18 12:28 ·  中国 河南 郑州 联通
初级用户
积分 48
发帖 20
注册 2006-12-02 00:10
19年会员
UID 72303
性别 男
状态 离线
再次谢谢大家的帮助,太热心了!!谢谢
论坛跳转: