看了楼主的代码, 似乎有逻辑错误, 局域网内XCOPY必须先建立连接吧.
从一台主机向多台电脑传送文件, 再运行, 用AT命令可以实现. 下面这段代码为先建立连接, 再传输文件, 读取本机时间, 延时五分钟, 用AT命令启动192.168.0.%%a上的指定程序.
局限, 目标主机必须开计划服务, 时间必须和执行批处理的主机同步. 代码未经测试...
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
net use \\192.168.0.%%i\sharename "123456" /user:admin
xcopy /y /e d:\temp\*.* \\192.168.0.%%i\game\*.*
call :time
at \\192.168.0.%%i !hour!:!minute! name.exe
net use \\192.168.0.%%i\sharename /del
)
pause
exit
:time
set clock=%time%
set hour=%clock:~0,2%
set minute=%clock:~3,2%
if %minute% lss 10 (
set minute=%minute:~1,1%
)
set /a minute=%minute%+5
if %minute% geq 60 (
set /a minute=%minute%-60
set minute=0!minute!
set /a hour=%hour%+1
if !hour! geq 24 (
set hour=00
)
)
goto :eof
更好的方法, 100台电脑都放一个批处理随机开启或在某个特定条件下开启. 执行从一台目标主机上下载必须的文件到本机. 然后运行. 192.168.0.*为目标主机地址. 先在192.168.0.*上单独建立一个共享文件夹, 把需要更新的文件放进去.
@echo off
net use \\192.168.0.*\sharename "password" /user:name
xcopy /y /e \\192.168.0.*\sharename\*.* localpath\*.*
start "" path\name.exe
net use \\192.168.0.*\sharename /del
脚本执行环境windows XP
[
Last edited by pengfei on 2006-10-22 at 10:46 ]