分享

用批处理实现向局域网内多台机器中复制文件 - 企业网管技术大杂烩 - 我是网管论坛 - P...

 昵称J3cw8 2011-03-06

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

  总公司用Email的方式传过来一个“edp.exe文件,要求对收银电脑进行升级。方法是覆盖掉所有收银POS机中“c:\pos”下的同名文件。
  我部收银电脑有五十多台,全部安装Windows2000 Pro版。如果用手工复制的方式,相当麻烦。经过摸索发现用批处理可以实现批量复制。方法如下:
  一、使用此方法的前提条件有以下几点:
  1、所有的收银电脑在同一个网段;
  2、所有的收银电脑的IP地址是顺序且规则的。如我处的收银电脑的IP地址分别为192.168.6.101192.168.6.138192.168.6.151192.168.6.155192.168.6.161192.168.6.163192.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”。
  在该文本文件添加以下内容并保存:
  1.     @echo off
  2.     for /L %%A in (101,1,138) do net use \\192.168.6.%%A\c$ "" /user:"edp"
  3.     for /L %%B in (151,1,155) do net use \\192.168.6.%%B\c$ "" /user:"edp"
  4.     net user \\192.168.6.161\c$ "" /user:"edp"
  5.   for /L %%C in (163,1,168) do net use \\192.168.6.%%C\c$ "" /user:"edp"
  6.     rem 以上指令是的目的是与目标机器建立连接
  7.   for /L $$D in (101,1,138) do copy/y c:\edp\edp.exe \\192.168.6.%%D\c$\pos\
  8.     for /L $$E in (151,1,155) do copy/y c:\edp\edp.exe \\192.168.6.%%E\c$\pos\
  9.   copy/y c:\edp\edp.exe \\192.168.6.161\c$\pos\
  10.     for /L %%F in (163,1,168) do copy/y c:\edp\edp.exe \\192.168.6.%%F\c$\pos\
  11.     rem 以上指令是将文件复制到目标机器。
复制代码
  做完以上工作的,只需要双击该文件,即可实现将相应文件复制到目标机器相应文件夹下的功能。
  这儿需要注意的有以下几点:
  1、该批处理中我们用到了循环语句“for,对该命令不熟悉的朋友可以通过在“开始菜单-运行”中输入“cmd”,然后输入“help for”指令来查看关于该命令的帮助;
  2%%符号后面的字母要区分大小写,即%%a不等同于%%A
  3、“copy”命令加上“/y”参数的目的是不询问直接覆盖目标文件。

  以上内容仅考虑可行性,未考虑安全性在内,且仅在公司测试通过,或有不足,请指正!

[ 本帖最后由 hymyg 于 2007-7-9 15:36 编辑 ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多