中国DOS联盟论坛

中国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