中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » if 怎么根据机名来判断执行文件
作者:
标题: if 怎么根据机名来判断执行文件 上一主题 | 下一主题
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『楼 主』:  if 怎么根据机名来判断执行文件

if.bat

@echo off
::此脚本根据机名来执行文件,此为测试版,正式使用修改echo行命令
if exist run.vbs del run.vbs
for /f "tokens=1" %%i in (a.txt) do if %computername% equ %%i (goto a)else cls
exit
:a
echo msgbox "计算机名:%computername%",48,"警告">run.vbs
run.vbs
exit
:b
echo msgbox "列表没有此计算机名",48,"警告">run.vbs
run.vbs


辅助工具.bat
::此脚本创建机器名列表,所以运行上面批处理前先确定有此列表文件
for /l %%i in (1,1,9) do echo 00%%i>>a.txt
for /l %%i in (10,1,99) do echo 0%%i>>a.txt
for /l %%i in (100,1,250) do echo %%i>>a.txt



说明:脚本基本思路已经出来,问题是能否精简代码甚至提高脚本执行的效率
比如说:辅助工具.bat 内容改成如果数据为1位(1-9)就自动加00,如果数据为2位(10-99)就自动加一个0


2008-4-9 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 2 楼』:  


@echo off
::此脚本根据机名来执行文件,此为测试版,正式使用修改echo行命令
for /f "tokens=1" %%i in (a.txt) do (
    if %computername% equ %%i (goto a) else cls
)
exit
:a
mshta vbscript:msgbox("计算机名:%computername%",48,"警告")(window.close)
exit
:b
mshta vbscript:msgbox("列表没有此计算机名",48,"警告")(window.close)

for /l %%i in (1,1,250) do set num=00%%i&&call,echo %%num:~-3%%>>a.txt
[ Last edited by abcd on 2008-4-9 at 03:56 AM ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 jiulong 分数: +4  时间:2008-4-10 07:19


2008-4-9 03:54
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 3 楼』:  

第二条命令非常受用,我怎么就没想到~-3来提取最后三个字符呢。
第一条命令就可惜了。

例:100台机,1-33号机执行一条命令,34-66执行另一条命令,67-100执行与之前面不同的命令,且最好能抛弃过渡文件。
对FOR命令我有个疑问,就是循环处理的效率好像很低。

2008-4-10 07:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: