中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 指定机器进行指定操作的批处理
作者:
标题: 指定机器进行指定操作的批处理 上一主题 | 下一主题
bbq123bbq
初级用户




积分 197
发帖 77
注册 2006-9-19
状态 离线
『楼 主』:  指定机器进行指定操作的批处理

在网上看到这段批处理
: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 ]

2007-3-20 14:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xycoordinate
中级用户




积分 493
发帖 228
注册 2007-2-16
来自 安徽
状态 离线
『第 2 楼』:  

: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 ]

2007-3-20 21:58
查看资料  发送邮件  发短消息 网志  OICQ (226308607)  编辑帖子  回复  引用回复
zhjipt
初级用户





积分 40
发帖 16
注册 2006-12-3
状态 离线
『第 3 楼』:  

说是支技网络,那个网络路径在哪设!怎么设能不能举例说明一下。

2007-6-17 02:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: