1. @echo off  
  2. for /f "delims=" %%i in ('dir /b/s c:\a') do set /a size1+=%%~zi  
  3. set /a a=size1 
  4. echo %a%  
  5. md g:\a  
  6. for /f "delims=" %%i in ('dir /b/s g:\a') do set /a size2+=%%~zi  
  7. set /a b=size2 
  8. echo %b%  
  9. if %a% neq %b% (xcopy c:\a d:\a /i/s/v/e/y) else (echo 没有更新文件!!!)  
  10. pause  
  11.  
  12. ::/i   
  13. ::如果 Source 是一个目录或包含通配符,而 Destination 不存在,xcopy 会假定 destination 指定目录名并创建一个新目录。  
  14. ::然后,xcopy 会将所有指定文件复制到新目录中。默认情况下,xcopy 将提示您指定 destination 是文件还是目录。  
  15.  
  16. ::/s   
  17. ::复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作。  
  18.  
  19. ::/e   
  20. ::复制所有子目录,包括空目录。同时使用 /e、/s 和 /t 命令行选项。   
  21.  
  22.  
  23. ::/y   
  24. ::禁止提示您确认要覆盖现存的目标文件。  
  25.  
  26. ::/v   
  27. ::在写入目标文件时验证每个文件,以确保目标文件与源文件完全相同。 

我写了一些注释,能很好的理解的。