用批处理实现向局域网内多台机器中复制文件(转载)

总公司用Email的方式传过来一个“edp.exe”文件,要求对收银电脑进行升级。方法是覆盖掉所有收银POS机中“c:\pos”下的同名文件。

  我部收银电脑有五十多台,全部安装Windows2000 Pro版。如果用手工复制的方式,相当麻烦。经过摸索发现用批处理可以实现批量复制。方法如下:

  一、使用此方法的前提条件有以下几点:

  1、所有的收银电脑在同一个网段;

  2、所有的收银电脑的IP地址是顺序且规则的。如我处的收银电脑的IP地址分别为192.168.6.101-192.168.6.138、192.168.6.151-192.168.6.155、192.168.6.161、192.168.6.163-192.168.6.168;

  3、每台收银电脑都是相同的登录名和相同的登录密码,此例中用户名为edp,密码为空

  4、每台收银电脑都开通的默认共享c$(因为此处我们的操作仅涉及c$),如果没有开通,可以通过修改注册表的方式来开通。具体方法在注册表编辑器regedit中删除掉“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

\Services\LanmanServer\Parameters”中的“AutoShareWks”子键,然后重启电脑。(该方法仅针对Windows2000 Pro版)

  二、编辑批处理文件

  我们先新建一个文件夹“C:\EDP”,然后将需要复制到其他机台上的文件复制到该文件夹下,此处是“edp.exe”文件。

  然后在该文件夹下新建一个文本文件,然后将扩展名改为“.bat”,比如“copyedp.bat”。

  在该文本文件添加以下内容并保存:

 

    @echo off

    for /L %%A in (101,1,138) do net use \\192.168.6.%%A\c$ "" /user:"edp"

    for /L %%B in (151,1,155) do net use \\192.168.6.%%B\c$ "" /user:"edp"

    net user \\192.168.6.161\c$ "" /user:"edp"

  for /L %%C in (163,1,168) do net use \\192.168.6.%%C\c$ "" /user:"edp"

    rem 以上指令是的目的是与目标机器建立连接

  for /L $$D in (101,1,138) do copy/y c:\edp\edp.exe \\192.168.6.%%D\c$\pos\

    for /L $$E in (151,1,155) do copy/y c:\edp\edp.exe \\192.168.6.%%E\c$\pos\

  copy/y c:\edp\edp.exe \\192.168.6.161\c$\pos\

    for /L %%F in (163,1,168) do copy/y c:\edp\edp.exe \\192.168.6.%%F\c$\pos\

    rem 以上指令是将文件复制到目标机器。

 

  做完以上工作的,只需要双击该文件,即可实现将相应文件复制到目标机器相应文件夹下的功能。

  这儿需要注意的有以下几点:

  1、该批处理中我们用到了循环语句“for”,对该命令不熟悉的朋友可以通过在“开始菜单-运行”中输入“cmd”,然后输入“help for”指令来查看关于该命令的帮助;

  2、%%符号后面的字母要区分大小写,即%%a不等同于%%A;

  3、“copy”命令加上“/y”参数的目的是不询问直接覆盖目标文件。

posted @ 2015-07-13 21:27  依米~  阅读(6394)  评论(0编辑  收藏  举报