![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 23:53 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 指定机器进行指定操作的批处理 |
| 可打印版本 802 / 2 |
| 第1楼 bbq123bbq | 发表于 2007-03-20 14:04 |
| 初级用户 发帖 77 积分 197 | |
|
指定机器进行指定操作的批处理 在网上看到这段批处理
:A rem 获取本机机号,机号区分大小写。 for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find /i "Host Name"') do set name=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "配置文件路径"') do set PC=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "执行的操作"') do set DOSRUN=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "执行操作的目录"') do set PATH=%%j rem 读取指定机器列表 for /f "usebackq tokens=1 delims=;" %%n in ("%PC%") do if %%n == %name% (goto RUN) else echo . :END exit :RUN rem 执行操作 cd /d %PATH% %DOSRUN% GOTO END 配置文件: 001; 002; 003; ----------------------------------------- 配置文件路径>"C:\Documents and Settings\csj\桌面\配置文件.ini" ----------------------------------------- 执行操作的目录>"D:\网络游戏\QQ" ----------------------------------------- 执行的操作>start qq.exe 有个问题请教,为是什么我把 :END exit 放到 :RUN rem 执行操作 cd /d %PATH% %DOSRUN% GOTO END 后面程序就失效,不管“配置文件”里有没有符合计算机名都运行QQ.exe 还有个问题经过修改批处理后当P运行到 :RUN echo 找到指定主机程序开始运行请梢后............ ping/n 5 127.1 cd /d %PATH% %DOSRUN% GOTO end 显示 ping 不是有效外部或内部命令??? 修改后批处理: @echo off rem 获取本机机号,机号区分大小写。 for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find /i "Host Name"') do set name=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "配置文件路径"') do set PC=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "执行的操作"') do set DOSRUN=%%j for /f "tokens=1* delims=>" %%i in ('type 配置文件.ini^|find /i "执行操作的目录"') do set PATH=%%j rem 读取指定机器列表 for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if %%n == %name% (goto RUN) for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if not %%n == %name% (goto no) :RUN echo 找到指定主机程序开始运行请梢后............ ping/n 5 127.1 cd /d %PATH% %DOSRUN% GOTO end :no echo 找不到指定主机...... pause>nul :end exit 最后问题能不能把 for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if %%n == %name% (goto RUN) for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if not %%n == %name% (goto no) 合成一段或帮忙简化一下这段批处理?? [ Last edited by bbq123bbq on 2007-3-20 at 02:05 PM ] |
|
| 第2楼 xycoordinate | 发表于 2007-03-20 21:58 |
| 中级用户 发帖 228 积分 493 来自 安徽 | |
|
:END放在:RUN后面
rem 读取指定机器列表 for /f "usebackq tokens=1 delims=;" %%n in ("%PC%") do if %%n == %name% (goto RUN) else (echo . &goto END) for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if %%n == %name% (goto RUN) for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do if not %%n == %name% (goto no) 简化 for /f "usebackq tokens=1 delims=;" %%n in (%PC%) do ( if %%n == %name% ( goto RUN ) else ( goto no ) ) [ Last edited by xycoordinate on 2007-3-20 at 09:04 AM ] |
|
| 第3楼 zhjipt | 发表于 2007-06-17 02:54 |
| 初级用户 发帖 16 积分 40 | |
|
说是支技网络,那个网络路径在哪设!怎么设能不能举例说明一下。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |