PowerShell script για μαζική επεξεργασία κειμένου: Οι επεξεργαστές κειμένου όπως το Notepad και το Notepad ++ χρησιμοποιούνται για τη δημιουργία πολλών διαφορετικών τύπων αρχείων όπως αρχεία καταγραφής, scripts, αρχεία PowerShell και πολλά άλλα.
Εφόσον ο επεξεργαστής κειμένου που χρησιμοποιείτε μπορεί να δημιουργήσει αυτά τα αρχεία, μπορεί και να τα επεξεργαστεί. Αν έχετε όμως πολλά αρχεία κειμένου και πρέπει να αντικαταστήσετε μια μερικές λέξεις σε όλα, τότε μπορείτε να το κάνετε με ένα PοwerShell script.
Το script θα το κάνει, χωρίς να χρειάζεται να ανοίξετε κάθε αρχείο ξεχωριστά για να αντικαταστήσετε τη λέξη. Ας δούμε πως μπορείτε να το κάνετε.
Αρχικά θα πρέπει να τοποθετήσετε όλα τα αρχεία κειμένου που θέλετε να επεξεργαστείτε στον ίδιο φάκελο. Το script θα ελέγξει μόνο έναν φάκελο και όχι ολόκληρο το σύστημά σας.
Πολλές φορές μέσα από αυτή τη σελίδα έχουμε αναφέρει την δωρεάν εφαρμογή επεξεργασίας κειμένου Notepad++. Μπορείτε να κατεβάσετε και να χρησιμοποιήσετε την εφαρμογή. Δημιουργήστε ένα νέο αρχείο, αντιγράψτε και επικολλήστε το παρακάτω κείμενο:
Get-ChildItem 'διαδρομή-φακέλου\*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'αρχική-λέξη', 'νέα-λέξη' }) | Set-Content $_ }
Θα πρέπει να επεξεργαστείτε το παραπάνω script. Αλλάξτε το “διαδρομή-φακέλου” με την πραγματική διαδρομή προς το φάκελο που περιέχει τα αρχεία κειμένου που συγκεντρώσατε για να επεξεργαστείτε.
Μετά θα πρέπει να αντικαταστήστε το ‘αρχική-λέξη’ με τη λέξη που θέλετε να αντικαταστήσετε. Τέλος, αλλάξτε το “νέα-λέξη” και προσθέστε τη λέξη που θέλετε να αντικαταστήσει την παλιά.
Για παράδειγμα, έχω μερικά αρχεία κειμένου που έχουν τη λέξη ‘Δημοσίευση’ και θέλω να αντικαταστήσω τη λέξη δημοσίευση με τη λέξη άρθρο. Δείτε πως μετέτρεψα το παραπάνω script:
Get-ChildItem 'C:\Users\iguru\Desktop\files\*.txt' -Recurse | ForEach { (Get-Content $_ | ForEach { $_ -replace 'δημοσίευση', 'άρθρο' }) | Set-Content $_ }
Μόλις τελειώσετε με την μετατροπή αποθηκεύστε το κείμενό σας με την επέκταση αρχείου ps1. Στην εφαρμογή Notepad++ πριν την αποθήκευση βεβαιωθείτε ότι έχετε αλλάξει τον τύπο αρχείου. Τρέξτε το script και τα αρχεία σας θα αλλάξουν.
Εάν θέλετε να χρησιμοποιήσετε το ίδιο script για άλλα αρχεία εκτός των αρχείων .txt, αλλάξτε την επέκταση αρχείου στην πρώτη γραμμή. Για παράδειγμα,
το C:\Users\iguru\Desktop\files\*.txt
θα πρέπει να γίνει
C:\Users\iguru\Desktop\files\*.xml
_____________________________________________
- Windows Defender κρυφή εντολή για block των adware
- Η California θα ψηφίσει για το δικαίωμα στην επισκευή
- Κατεβάστε δωρεάν δορυφορικές εικόνες υψηλής ανάλυσης (HD)
- DaaS ή device-as-a-service Microsoft σύντομα κοντά σας
- ownCloud το δικό σας Cloud: εγκατάσταση σε Linux
Σας ευχαριστώ πολύ.
Δεν ξέρω αν έστειλα το προηγούμενο, οπότε επαναλαμβάνω συνοπτικά.
Τι γίνεται αν αντί αντικατάστασης λέξης με άλλη λέξη, θέλω να αντικαταστήσω λέξη με μια μεταβλητή (το όνομα του αρχείου π.χ)
Θα σας είμαι ευγνώμων για μια απάντηση
μπορείς να δώσεις μεταβλητές (variables) π.χ.:
$extension = “*.cue”
$filename = “το όνομα του αρχείου”
δες εδώ μήπως πάρεις καμιά ιδέα
Με βοηθήσατε πάρα πολύ. Αν όμως αντί για συγκεκριμένη λέξη θέλω να βάλω μια μεταβλητή? Να αντικαταστήσω δλδ μια συγκεκριμένη λέξη με μια μεταβλητή (το όνομα του αρχείου). Όπως ήδη έχετε καταλάβει πρόκειται για αρχεία .cue. Βρήκα 200 φακέλους με διαφορετικό όνομα, που ο καθένας είχε 2 αρχεία όλα όμοια μεταξύ τους, οπότε δεν μπορώ να μεταφέρω flac και cue στον ίδιο φάκελο της συλλογής μου. Μετέτρεψα τα αρχεία κάθε φακέλου με το όνομα του φακέλου αλλά δεν γλύτωσα. Τώρα πρέπει σε κάθε cue εσωτερικά στη γραμμή File να βάλω το όνομα του αντίστοιχου αρχείου flac. Πρέπει δλδ να ανοίξω ένα-ένα 200 cue.
Help ([email protected])