中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-27 16:39
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,276 会员排行
DOS批处理 & 脚本技术(批处理室) » if 怎么根据机名来判断执行文件
可打印版本  845 / 2
第1楼 jiulong 发表于 2008-04-09 02:45
中级用户 发帖 183 积分 396
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
第2楼 abcd 发表于 2008-04-09 03:54
银牌会员 发帖 739 积分 1,436



[ Last edited by abcd on 2008-4-9 at 03:56 AM ]
第3楼 jiulong 发表于 2008-04-10 07:19
中级用户 发帖 183 积分 396
第二条命令非常受用,我怎么就没想到~-3来提取最后三个字符呢。
第一条命令就可惜了。

例:100台机,1-33号机执行一条命令,34-66执行另一条命令,67-100执行与之前面不同的命令,且最好能抛弃过渡文件。
对FOR命令我有个疑问,就是循环处理的效率好像很低。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023