Αρχική σελίδα » πως να » IT Geek Πώς να διατηρήσετε αρχεία με το ίδιο όνομα σε συγχρονισμό

    IT Geek Πώς να διατηρήσετε αρχεία με το ίδιο όνομα σε συγχρονισμό

    Έχετε πιθανότατα ακούσει τις υπηρεσίες, όπως το Dropbox, οι οποίες χρησιμοποιούνται για να διατηρούν συγχρονισμένα αρχεία σε πολλαπλές μηχανές. Ωστόσο, τι γίνεται αν θέλετε να εκτελέσετε αυτήν τη λειτουργία σε ένα μόνο μηχάνημα; Δηλαδή διατηρήστε τα αρχεία που έχουν το ίδιο όνομα αρχείου συγχρονισμένα σε ολόκληρο το μηχάνημα, έτσι ώστε όταν ένα από τα αρχεία αλλάξει, όλα αυτά ενημερώνονται.

    Αυτή η λειτουργικότητα μπορεί να είναι πολύ χρήσιμη, ειδικά για προγραμματιστές ή διαχειριστές συστημάτων, όπου μερικές φορές απαιτείται διπλότυπος αρχείων.

    Πως δουλεύει

    Ας υποθέσουμε ότι είστε web developer που με την πάροδο του χρόνου έχει συγκεντρώσει μια ωραία συλλογή από λειτουργίες Javascript που χρησιμοποιείτε σε όλες τις τοποθεσίες που διατηρείτε. Καθώς προσθέτετε ή βελτιώνετε αυτό το αρχείο Javascript (ας το αποκαλούμε "library.js"), ενημερώνεται μόνο το τρέχον αντίγραφο που επεξεργάζεστε. Αυτό θα σήμαινε, για παράδειγμα, εάν κάνετε μια επιδιόρθωση ή βελτίωση σφάλματος, θα πρέπει να το μεταφέρετε με το χέρι σε κάθε φάκελο πηγαίου κώδικα άλλου ιστότοπού σας.

    Το εργαλείο μας προσπαθεί να λύσει το πρόβλημα της ανάγκης χειροκίνητης εφαρμογής του ενημερωμένου αρχείου σε κάθε φάκελο προέλευσης. Τι κάνει:

    1. Αναζητά όλα τα αρχεία με καθορισμένο όνομα (library.js) μέσα σε ένα καθορισμένο ριζικό φάκελο (% UserProfile% \ Documents \ Web Sites).
    2. Για όλα τα αρχεία που ονομάζονται library.js, εντοπίζει εκείνο το οποίο τροποποιήθηκε πιο πρόσφατα και σημειώνει την τιμή hash του αρχείου.
    3. Όλα τα άλλα αρχεία που ονομάζονται library.js (τα οποία δεν είναι το πιο πρόσφατο ενημερωμένο αντίγραφο), έχουν στη συνέχεια σύγκριση με την πιο πρόσφατη (που προσδιορίστηκε στο προηγούμενο βήμα).
    4. Αν οι τιμές hash των αρχείων είναι διαφορετικές, τότε το αντίστοιχο αντίγραφο του 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 \ Αρχεία κώδικα" Common.vb / B

    Η ακόλουθη εντολή εκτελεί την ίδια ενέργεια αναζήτησης όπως παραπάνω, αλλά αναφέρει μόνο αρχεία που θα αντικατασταθούν και δεν εκτελεί καμία λειτουργία αρχείων:

    UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Αρχεία κώδικα" Common.vb / V

    Ας υποθέσουμε ότι υπάρχει ένα αρχείο με το όνομα "C: \ Config \ FilesToSearch.txt" με τα ακόλουθα περιεχόμενα:

    library.js
    Common.vb

    Η ακόλουθη εντολή θα πραγματοποιήσει αναζήτηση στον φάκελο των εγγράφων μου για τον τρέχοντα χρήστη και θα αναφέρει τυχόν ενημερώσεις σε "library.js" και "Common.vb", αλλά δεν θα εκτελέσει καμία ενέργεια ενημέρωσης:

    UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V

    Αυτοματοποίηση της διαδικασίας

    Αυτή η διαδικασία είναι ένας ιδανικός υποψήφιος για αυτοματοποίηση. Δημιουργώντας μια προγραμματισμένη εργασία (δεν απαιτείται κάτι ειδικό) με τις καθορισμένες ρυθμίσεις και την εκτέλεση καθημερινά / ωριαία / κάθε 15 λεπτά (ανάλογα με τις απαιτήσεις σας), μπορείτε να διατηρήσετε αρχεία συγχρονισμένα σε αληθινά set-and-forget-it μόδα.

    Κατεβάστε

    Ενημέρωση στην πιο πρόσφατη μορφή εκτελέσιμου τροποποιημένου αντιγράφου

    Ενημέρωση στα πιο πρόσφατα αρχεία αντιγραφής - πηγαίου κώδικα (περισσότερα στοιχεία γραμμής εντολών)