吴义法

导航

bat 批处理同步跟新

     之前,在同步檔案的時候,我們都習慣去找一些同步的工具來做,
其實,在windows下的xcopy就可以做到了!!

假設我們有個資料夾為d:\tmp跟e:\tmp
而我們只要將d:\tmp中有異動的檔案複製到e:\tmp下的話,

用法如下
xcopy d:\tmp\. e:\tmp\ /D /S /Y

其中/D 表示只複製那些來源檔案日期比目的檔案日期為新的檔案,
/S 表示複製每個目錄及其包含的子目錄,不複製空目錄.
假如空目錄也要複製的話,可以使用/E
另外,如果只要複製資料夾結構而不複製檔案的話,可以用/T
而/Y 則表示不要提示您確認是否要覆蓋一個已經存在的檔案。
這樣他就不會一直跳出確認覆蓋的視窗.

假如你想要知道有哪些檔案被複製的話,可以加個/F,
/F 表示在複製時顯示來源及目的檔案的全部檔名。

另外,如果你要同步不同電腦的資料夾的話,
則要先建立網路磁碟機,
用法如下

net use z: \\ip位址\資料夾名稱 密碼 /user:帳號
xcopy z:\. e:\tmp\ /d /s /y /z
net use /delete z:

用net use將資料夾加入網路磁碟機z:
等同步完後再將z:刪除
而xcopy則加了一個參數/Z
他的說明是"在可重新開始的模式中複製網路檔案。"
不過很多人應該有看沒有懂...
摘自網路上的說明 : "如果您在複製階段失去連線 (例如,如果伺服器切斷伺服器連線的話), 在您重新建立連線之後會恢復複製"!!

 

关于bat常见命令的学习:

  net use S: computer-01D 
  attrib -s -h -r S:ghostC:WINDOWSCOMMANDXcopy.exe /s /e /y 
  D:ghost S:ghost 
  net use * /delete 
  net use S: computer-02D 
  attrib -s -h -r S:ghost 
  C:WINDOWSCOMMANDXcopy.exe /s /e /y D:ghost S:ghost 
  net use * /delete 

 

 写说明一下net命令的用法,这里采用net命令其中一个参数 net use,如果对其他有兴趣,可以在command窗口打net/?显示其 help 屏幕。
参数 net use
  作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。
  命令格式:net use [devicename | *] [computernamesharename[volume]]
  [password | *]] [/user:[domainname]username] [[/delete] |
  [/persistent:{yes | no}]]
参数介绍:
键入不带参数的net use列出网络连接。
  devicename指定要连接到的资源名称或要断开的设备名称。
  computernamesharename服务器及共享资源的名称。
  password访问共享资源的密码。
  *提示键入密码。
  /user指定进行连接的另外一个用户。
  domainname指定另一个域。
  username指定登录的用户名。
  /home将用户连接到其宿主目录。
  /delete取消指定网络连接。
  /persistent控制永久网络连接的使用。
如下是简单的例子说明:
(1)net use e: YFANGTEMP 将YFANGTEMP目录建立为E盘
(2)net use e: YFANGTEMP /delete 断开连接
这里我只写两行批处理,用意这两大行网络标识是不同的,其他可以依次类推。我的网吧网络标识是computer-01~computer-N
也就是网吧电脑的网络名称,可以根据自己实际情况更改。譬如user01~userXX
开始解释每行命令,实际应用稍后解释。
一.命令解析。
1.net use S: computer-01D
(将computer-01的共享盘d盘进行网络连接,并映射成网络驱动盘s盘。这里d盘要做完全共享,如果不是完全共享文件就复制不过去了。
提示1:如果怕完全共享被人将文件删除,可以设完全共享密码。假设远程共享盘完全共享密码为123,那么这行命令改成如下:
net use S: computer-01D 123
这样访问远程客户机共享盘就没有问题了。提示2:这里为什么要选d盘而不是e盘c盘,是要和同步更新的服务机的盘符对应起来,我要复制本地机d盘下的东西,当然要和d盘对应。)
2. attrib -s -h -r S:ghost
(把目标盘下要复制的目标目录下的文件属性(只读、隐藏、系统)三项去掉。提示:如果目标盘没有ghost目录接下来的xcopy命令会自动创建的)
3. C:WINDOWSCOMMANDXcopy.exe /y /s /e D:ghost
S:ghost(将本地机的d盘下的ghost目录下文件复制到虚拟映射盘s盘下ghost目录,这里的s盘就是computer-01上的d盘。提示1:s盘在执行第一大行后会自动消失,当执行第二大行时computer-02的d盘被虚拟映射成s盘;提示2:/s /e参数含义指把ghost下所有子目录包括空目录全部复制。/y 自动覆盖已有文件)
4. net use * /delete (断开所有连接)

详细出处参考:http://www.jb51.net/article/5836.htm

其他参考:

資料夾同步:http://www.dotblogs.com.tw/ajun/archive/2008/04/01/2518.aspx

用xcopy同步文件: http://zhcxl.blog.51cto.com/211202/175635

一天的辛苦 bat实现文件同步 :http://blog.sina.com.cn/s/blog_4c6c82fd010008p6.html

 

posted on 2010-03-27 18:24  吴义法  阅读(771)  评论(2编辑  收藏  举报