Board logo

标题: 复制程序后怎样自动运行?? [打印本页]

作者: bbq123bbq     时间: 2006-10-22 07:32    标题: 复制程序后怎样自动运行??

从服务器copy一个更新程序到下面100台客户机..然后让客户机立刻运行更新程序:for /l %%a in (1,1,100) do xcopy /y /e d:\temp\*.* \\192.168.0.%%a\game\*.*

复制后要怎样才可以让客户机自动运行服务器复制过去的程序???
还有问题就是那100台计算机用户是admin 密码是123456 服务器要复制程序过去又要怎样写??自己写拉一个:
for /l %%a in (1,1,100) do xcopy /y /e d:\temp\*.* net use \\192.168.0.%%a\game\*.* 123456 /user:admin
这样写可不可以呢??请高手帮忙看看最主要要怎样让计算机自动运行服务器复制过来的程序...要即时运行不能重起的,因为客户机都装拉还原精灵
作者: lxmxn     时间: 2006-10-22 10:06

  复制到客户机好象无法实现自动运行。

  另外,这个“for /l %%a in (1,1,100) do xcopy /y /e d:\temp\*.* net use \\192.168.0.%%a\game\*.* 123456 /user:admin”已经是错误的,“net use“是建立共享连接的命令,不可作为xcopy的目标地。

作者: pengfei     时间: 2006-10-22 10:30
看了楼主的代码, 似乎有逻辑错误, 局域网内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 ]
作者: gxfc     时间: 2006-10-22 13:38
这个单纯做为一个问题,是可以进一步研究的。
更好的方法, 100台电脑都放一个批处理随机开启或在某个特定条件下开启. 执行从一台目标主机上下载必须的文件到本机. 然后运行.
但是从实用角度来看,可以说毫无价值。

你的问题可以用同步专家或迅闪等软件来完美实现。