Πιθανότατα έχετε ακούσει για υπηρεσίες, όπως το Dropbox, οι οποίες χρησιμοποιούνται για να διατηρούν τα αρχεία συγχρονισμένα σε πολλά μηχανήματα. Ωστόσο, τι γίνεται αν θέλετε να εκτελέσετε αυτήν τη λειτουργία σε ένα μηχάνημα; Δηλαδή, διατηρήστε συγχρονισμένα αρχεία που έχουν το ίδιο όνομα αρχείου σε όλο το μηχάνημα έτσι ώστε όταν αλλάζει ένα από τα αρχεία, όλα ενημερώνονται.
Αυτή η λειτουργικότητα μπορεί να είναι αρκετά χρήσιμη, ειδικά για προγραμματιστές ή διαχειριστές συστημάτων όπου μερικές φορές απαιτείται διπλή αναπαραγωγή αρχείων.
Πως δουλεύει
Ας υποθέσουμε ότι είστε προγραμματιστής ιστού που, με την πάροδο του χρόνου, έχει δημιουργήσει μια ωραία συλλογή λειτουργιών Javascript που χρησιμοποιείτε σε όλους τους ιστότοπους που διατηρείτε. Καθώς προσθέτετε ή βελτιώνετε αυτό το αρχείο Javascript (ας το ονομάσουμε "library.js"), ενημερώνεται μόνο το τρέχον αντίγραφο που επεξεργάζεστε. Αυτό θα σήμαινε, για παράδειγμα, αν κάνετε μια διόρθωση σφαλμάτων ή βελτίωση, θα πρέπει να το εφαρμόσετε χειροκίνητα και σε κάθε φάκελο πηγαίου κώδικα του ιστότοπού σας.
Το εργαλείο μας προσπαθεί να λύσει το πρόβλημα της μη αυτόματης μετάβασης να εφαρμόσει το ενημερωμένο αρχείο σε κάθε φάκελο προέλευσης. Τι κάνει:
- Αναζητά όλα τα αρχεία με καθορισμένο όνομα (library.js) εντός ενός καθορισμένου ριζικού φακέλου (% UserProfile% \ Documents \ Web Sites).
- Για όλα τα αρχεία με όνομα library.js, εντοπίζει αυτό που τροποποιήθηκε πιο πρόσφατα και σημειώνει την τιμή κατακερματισμού του αρχείου.
- Όλα τα άλλα αρχεία με το όνομα library.js (τα οποία δεν είναι το πιο πρόσφατο ενημερωμένο αντίγραφο) έχουν τότε την τιμή κατακερματισμού του αρχείου σε σύγκριση με το πιο πρόσφατο (καθορίστηκε στο προηγούμενο βήμα).
- Εάν οι τιμές κατακερματισμού του αρχείου είναι διαφορετικές, τότε το αντίστοιχο αντίγραφο του library.js αντικαθίσταται με το πιο πρόσφατα ενημερωμένο αντίγραφο.
Επειδή χρησιμοποιούμε τιμές κατακερματισμού για να συγκρίνουμε τα αρχεία, είμαστε βέβαιοι ότι τυχόν αρχεία που αντικαθίστανται είναι πράγματι διαφορετικά από το πιο πρόσφατο αντίγραφο. Για παράδειγμα, εάν επρόκειτο να εκτελέσετε τη διαδικασία και πραγματοποιήθηκαν 5 αντικαταστάσεις αρχείων, η εκτέλεση της διαδικασίας ξανά αμέσως μετά δεν θα έκανε αντικαταστάσεις, καθώς οι τιμές κατακερματισμού του αρχείου είναι τώρα ίδιες.
Ενημέρωση σε νεότερο εργαλείο αντιγραφής
Το εργαλείο "Ενημέρωση σε νεότερο εργαλείο αντιγραφής" είναι μια τροποποιημένη έκδοση δέσμης δέσμης ενεργειών με το ίδιο όνομα (και οι δύο είναι διαθέσιμες για λήψη χρησιμοποιώντας τους συνδέσμους στο κάτω μέρος του άρθρου) οι οποίες έχει μετατραπεί σε αρχείο EXE προκειμένου να συμπεριληφθούν τα απαιτούμενα Βοηθητικό πρόγραμμα Nirsoft HashMyFiles . Το εργαλείο πρέπει να εκτελείται από τη γραμμή εντολών με συγκεκριμένες παραμέτρους. Εάν επρόκειτο να εκτελέσετε το αρχείο EXE κάνοντας διπλό κλικ, θα λάβετε ένα μήνυμα που το υποδεικνύει.
Για να χρησιμοποιήσετε την Ενημέρωση σε νεότερο αντίγραφο, μπορείτε να προβάλετε τις παραμέτρους εκτελώντας το "UpdateToNewestCopy /?" που δείχνει τον ακόλουθο διάλογο:
Οι μόνες απαιτούμενες παράμετροι είναι το SourceFolder (π.χ.% UserProfile% \ Documents \ Web Sites) και το FileName (library.js). Ωστόσο, μπορείτε να αλλάξετε τη λειτουργικότητα προσθέτοντας επιπλέον διακόπτες όπως περιγράφεται παραπάνω.
Παραδείγματα
Η ακόλουθη εντολή θα βρει όλα τα αρχεία με το όνομα "Common.vb" στο φάκελο "C: \ users \ jfaulkner \ documents \ Code Files", εκτελώντας την αντικατάσταση αλλά κάνοντας αντίγραφο ασφαλείας του τρέχοντος αντιγράφου πριν από την αντικατάσταση (αυτή η έξοδος είναι αυτό που παρήγαγε το κορυφαία εικόνα για αυτό το άρθρο):
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / B
Η ακόλουθη εντολή εκτελεί την ίδια ενέργεια αναζήτησης όπως παραπάνω, ωστόσο αναφέρει μόνο αρχεία που θα αντικατασταθούν και δεν εκτελεί καμία λειτουργία αρχείων:
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / V
Ας υποθέσουμε ότι υπάρχει ένα αρχείο με το όνομα "C: \ Config \ FilesToSearch.txt" με τα ακόλουθα περιεχόμενα:
library.js
Κοινή.vb
Η ακόλουθη εντολή θα αναζητούσε το φάκελο εγγράφων μου του τρέχοντος χρήστη και θα αναφέρει τυχόν ενημερώσεις στα "library.js" και "Common.vb", αλλά δεν θα εκτελούσε καμία ενέργεια ενημέρωσης:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Αυτοματοποίηση της διαδικασίας
Αυτή η διαδικασία είναι ιδανικός υποψήφιος για αυτοματοποίηση. Με δημιουργία προγραμματισμένης εργασίας (δεν απαιτείται τίποτα ειδικό) με τις καθορισμένες ρυθμίσεις και την εκτέλεση καθημερινά / ωριαία / κάθε 15 λεπτά (ανάλογα με τις απαιτήσεις σας), μπορείτε να διατηρείτε τα αρχεία συγχρονισμένα με πραγματικό τρόπο set-it-and-Ξεχάστε το.
Κατεβάστε
Ενημέρωση σε νεότερο αντίγραφο - τροποποιημένη εκτελέσιμη μορφή
Ενημέρωση σε νεότερο αντίγραφο - αρχεία παρτίδας προέλευσης (περισσότερο προσανατολισμένη στη γραμμή εντολών)