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

    Αντικαταστήστε το κείμενο σε απλά αρχεία κειμένου από τη γραμμή εντολών

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

    • Ενημερώστε τα αρχεία διαμόρφωσης / INI για να αντικαταστήσετε τις διαδρομές UNC.
    • Πληροφορίες ενημέρωσης μαζικής ενημέρωσης αποθηκευμένες σε αρχεία INI σε διακομιστή Terminal / Citrix.
    • Χρησιμοποιήστε σε συνδυασμό με δέσμες ενεργειών για να αναπτύξετε δεδομένα με "προτυποποιημένα" και στη συνέχεια να εφαρμόσετε τιμές στα αντιγραμμένα αρχεία.

    Η λύση μας είναι ένα VBScript που διασυνδέεται με τη λειτουργία Replace Visual Basic. Τοποθετώντας αυτή τη δέσμη ενεργειών σε μια θέση στη μεταβλητή Windows PATH, τώρα διαθέτετε αυτή τη λειτουργία στη διάθεσή σας.

    Χρησιμοποιεί

    Μόλις στο σύστημά σας, μπορείτε να καλέσετε το σενάριο απλά χρησιμοποιώντας την εντολή ReplaceText. Μερικά παραδείγματα θα απεικονίσουν τρόπους με τους οποίους μπορείτε να χρησιμοποιήσετε αυτό το:

    Αντικαταστήστε τη λέξη "null" με το "n / a" στο αρχείο C: DataValues.csv:

    Αντικατάσταση κειμένου "C: DataValues.csv" null n / a

    Σάρωση όλων των αρχείων INI στον φάκελο C: Users (+ sub directories) αντικαθιστώντας όλες τις εμφανίσεις του "Server = Old" με "Server = New"

    FORFILES / P "C: Χρήστες" / M * .ini / S / C "Cmd / C ReplaceText @Path Server =

    Σάρωση όλων των αρχείων CFG στο προφίλ του τρέχοντος χρήστη αντικαθιστώντας το "p @ ssw0rd" με το "PA $$ woRd" χρησιμοποιώντας μια αναζήτηση ευαίσθητη σε πεζά:

    FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C Αντικατάσταση κειμένου @path p @ ssw0rd PA $$ woRd"

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

    Το σενάριο

    Msgstr "Αντικατάσταση κειμένου
    «Συντάχθηκε απο τον: Jason Faulkner
    'SysadminGeek.com

    'Αυτό το σενάριο θα πρέπει να τοποθετηθεί σε ένα φάκελο που καθορίζεται στη μεταβλητή PATH του συστήματός σας.

    'Χρήση (WScript):
    'ReplaceText Όνομα_αρχείου OldText NewText [/ I]

    '/ I (προαιρετικό) - Η αντιστοίχιση κειμένου δεν κάνει διάκριση πεζών-κεφαλαίων

    Ορίστε oArgs = WScript.Arguments

    intCaseSensitive = 0
    Για i = 3 έως oArgs.Count-1
    Αν UCase (oArgs (i)) = "/ I" Στη συνέχεια intCaseSensitive = 1
    Επόμενο

    Ορίστε oFSO = CreateObject ("Scripting.FileSystemObject")

    Αν δεν είναι oFSO.FileExists (oArgs (0)) Στη συνέχεια
    WScript.Echo "Το συγκεκριμένο αρχείο δεν υπάρχει."
    Αλλού
    Ορίστε oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

    strText = Αντικατάσταση (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

    Ορίστε oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Τέλος εαν

    επιπρόσθετες σημειώσεις

    Από προεπιλογή, τα Windows χρησιμοποιούν WScript για την εκτέλεση αρχείων VBScript (VBS). Το μόνο πρόβλημα που μπορεί να προκαλέσει είναι ότι τυχόν σφάλματα και / ή μηνύματα από το σενάριο θα εμφανιστούν ως αναδυόμενα παράθυρα. Για ένα εργαλείο γραμμής εντολών, είναι καλύτερο αυτά τα μηνύματα να εμφανίζονται στην κονσόλα. Υπάρχουν μερικοί τρόποι με τους οποίους μπορείτε να το επιτύχετε.

    Αλλάξτε τον προεπιλεγμένο χειριστή των αρχείων VBScript στο CScript, εκτελώντας αυτήν την εντολή από τη γραμμή εντολών (με δικαιώματα διαχειριστή):

    CScript // H: CScript

    Εκτελέστε ρητά τη δέσμη ενεργειών ReplaceText χρησιμοποιώντας την εντολή CScript:

    CScript "C: PathToReplaceText.vbs" // B Όνομα αρχείου OldText NewText [/ I]

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

    Κάντε λήψη του Script ReplaceText από το SysadminGeek.com