[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 帮忙改VBS代码-比较两个文件夹,拷贝不同到文件到指定位置

  1. Dim fso, File
  2.     Dim PathA, PathB
  3.     Dim FilesInPathA
  4.     Set fso = CreateObject("Scripting.FileSystemObject")
  5.     Set PathA = fso.GetFolder("C:\A")  '获得路径A下的文件列表
  6.     For Each File In PathA.Files
  7.         FilesInPathA = FilesInPathA & "|" & File.Name
  8.     Next
  9.     Set PathB = fso.GetFolder("C:\B")  '获得路径B下的文件列表
  10.     For Each File In PathB.Files
  11.     If InStr(FilesInPathA, File.Name)=0 Then '判断此文件在路径A下是否存在
  12.     File.Delete false '如果不存在则删除
  13.         End If
  14.     Next
  15.     Set fso = Nothing
复制代码
以上代码是用于比较两个文件夹,删除“B文件夹”中与“A文件夹”中不同的文件,我现在要将删除功能改为拷贝功能,也就是说,将“B文件夹”中有,而A“文件夹”中没有的文件拷贝到“C文件夹”,怎么改?谢谢

这样为什么不行呢?


Dim fso, File
    Dim PathA, PathB
    Dim FilesInPathA
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set PathA = fso.GetFolder("C:\Documents and Settings\Administrator\桌面\VBS删除文件\1")  '获得路径A下的文件列表
    For Each File In PathA.Files
        FilesInPathA = FilesInPathA & "|" & File.Name
    Next
    Set PathB = fso.GetFolder("C:\Documents and Settings\Administrator\桌面\VBS删除文件\2")  '获得路径B下的文件列表
    For Each File In PathB.Files
    If InStr(FilesInPathA, File.Name)=False Then '判断此文件在路径A下是否存在
    File.copy PathA '如果不存在则拷贝
        End If
    Next
    Set fso = Nothing

TOP

回复 3# apang


    多谢了,我是新手,请多指教!!

TOP

回复 3# apang


    老师,如果要历遍子文件夹,这个脚本应该如何改呢?
谢谢!

TOP

回复 6# czjt1234
老师,以下是对比文件夹A和B,将B文件夹中有、而A文件夹中没有的文件,拷贝到C文件夹!你给的不能实现此功能!
Dim PathA,PathB,PathC,FSO,File
PathA = "c:\A"
PathB = "c:\B"
PathC = "c:\C"
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(PathC) Then FSO.CreateFolder(PathC)
For Each File In FSO.GetFolder(PathB).Files
   If Not FSO.FileExists(PathA &"\" & File.Name) Then
      File.Copy PathC &"\"
   End If
Next
MsgBox "OK"

TOP

回复 6# czjt1234


    老师的这个好像没有B文件夹吧?怎么对比?
另外:d:\1是什么意思?

TOP

回复 9# czjt1234


    老师你测试过了吗?
我测试在D:\B 只能拷贝里面子文件夹的文件,其他文件不能拷贝,在包含中文字符的文件夹执行没反应!!

TOP

回复 11# apang


    老师,您太厉害了!!!非常感谢您的帮助,问题完全解决!!谢谢!!

TOP

返回列表