Estoy tratando de diseño de esta secuencia de comandos que se supone que va a ser utilizado como parte de un script de inicio de sesión para un montón de usuarios. Y este guión es básicamente supone que tener una carpeta de origen y la carpeta de destino como, básicamente, sólo asegúrese de que la carpeta de destino tiene exactamente el mismo contenido que el de la carpeta de origen. Pero sólo se copia si el datemodified sello del archivo de origen es más reciente que el archivo de destino.

He estado pensando esta básicos pseudo código, tratando de asegurarse de que esto es válido y sólido, básicamente.

Dim strSourceFolder, strDestFolder
strSourceFolder = "C:\Users\User\SourceFolder\"
strDestFolder = "C:\Users\User\DestFolder\"

For each file in StrSourceFolder
     ReplaceIfNewer (file, strDestFolder)
Next

Sub ReplaceIfNewer (SourceFile, DestFolder)

    Dim DateModifiedSourceFile, DateModifiedDestFile
    DateModifiedSourceFile = SourceFile.DateModified()
    DateModifiedDestFile = DestFolder & "\" & SourceFile.DateModified()

    If DateModifiedSourceFile < DateModifiedDestFile
        Copy SourceFile to SourceFolder
    End if

End Sub

Funcionaría esto? No estoy muy seguro de cómo se puede hacer, pero yo probablemente podría pasar todo el día de averiguar lo que ocurría. Pero la gente de aquí son en general tan increíblemente inteligente que con su ayuda podría tomar mucho menos tiempo 🙂

  • ¿Qué pasa si el archivo de destino es la que falta?
InformationsquelleAutor Kenny Bones | 2010-05-14

2 Comentarios

  1. 2

    Su algoritmo se ve bien. Prácticamente hablando, usted necesita para obtener los Archivos utilizando un FileSystemObject, y recuperar a sus respectivos DateLastModified propiedades. Usted puede hacer un DateDiff en las dos fechas para comparar cual es anterior.

    Ligeramente modificada ejemplos de DevGuru:

    Dim filesys,demofile, date1, date2
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set demofile = filesys.GetFile("filename1")
    date1 = demofile.DateLastModified
    demofile = filesys.GetFile("filename2")
    date2 = demofile.DateLastModified
    
    If DateDiff("d", date1, date2) > 0 Then
        'date2 is more recent than date1, comparison by "day" ' ** Improvement **
    End If

    Edición: escrito mal la URL.


    Mejora
    En el comentario, «fecha1» y «fecha2» se han intercambiado.
    El documento de MSDN dice:
    Si fecha1 se refiere a un momento posterior a date2, la función DateDiff devuelve un número negativo.
    http://msdn.microsoft.com/en-us/library/xhtyw595(v=vs 84).aspx

    • Esto se ve muy prometedor 🙂 voy a probarlo 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here