中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 22:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 指定机器进行指定操作的批处理 查看 800 回复 2
楼 主 指定机器进行指定操作的批处理 发表于 2007-03-20 14:04 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
在网上看到这段批处理
: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 发表于 2007-03-20 21:58 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
: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 发表于 2007-06-17 02:54 ·  中国 福建 泉州 德化县 电信
初级用户
积分 40
发帖 16
注册 2006-12-03 05:20
19年会员
UID 72433
性别 男
状态 离线
说是支技网络,那个网络路径在哪设!怎么设能不能举例说明一下。
论坛跳转: