Vbscript - Comparez et copier des fichiers à partir du dossier si plus récents que les fichiers de destination
Je suis en train de créer ce script qui est censé être utilisé comme une partie d'un script d'ouverture de session pour beaucoup d'utilisateurs. Et ce script est fondamentalement censé prendre un dossier source et le dossier de destination que fondamentalement juste assurez-vous que le dossier de destination a exactement le même contenu que le dossier source. Mais ne copie que si le datemodified horodatage du fichier source est plus récent que le fichier de destination.
J'ai pensé à cette base de pseudo-code, il suffit de faire en sorte que ce qui est valable et solide en gros.
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
Serait-ce de travailler? Je ne suis pas tout à fait sûr de savoir comment il peut être fait, mais je pourrais probablement passer toute la journée à essayer de le comprendre. Mais les gens d'ici sont généralement de façon étonnamment intelligent qu'avec votre aide, il serait prendre beaucoup moins de temps 🙂
- Que faire si le fichier de destination est manquant?
Vous devez vous connecter pour publier un commentaire.
Votre algorithme semble bon. En pratique, vous devrez récupérer les Fichiers en utilisant un FileSystemObject, et de récupérer leurs respectifs DateLastModified propriétés. Vous pouvez faire un DateDiff sur les deux dates pour comparer ce qui est plus tôt.
Légèrement modifié exemples de DevGuru:
Edit: mal Orthographié l'URL.
Amélioration
Dans le commentaire, "date1" et "date2" ont été échangés.
Le document MSDN dit:
Si date1 se réfère à un moment plus tard, date2, la fonction DateDiff retourne un nombre négatif.
http://msdn.microsoft.com/en-us/library/xhtyw595(v=vs. 84).aspx
Votre code semble raisonnable. Il suffit de regarder pour les fichiers en et tels.
Vous pouvez utiliser le
FileSystemObject
pour effectuer les opérations sur les fichiers, il suffit de regarder:http://msdn.microsoft.com/en-us/library/6kxy1a51%28VS.85%29.aspx