- PowerShell σας επιτρέπει να εγκαταστήσετε γραμματοσειρές τόσο για το σύστημα όσο και για έναν συγκεκριμένο χρήστη.
- Τα σενάρια μπορούν να χρησιμοποιηθούν με το AddFontResource και το Μητρώο για μια μόνιμη εγκατάσταση.
- Υπάρχουν σύγχρονες εναλλακτικές λύσεις, όπως η εγκατάσταση γραμματοσειρών από το Nerd Fonts για την προσαρμογή του τερματικό.
- Είναι δυνατό να αυτοματοποιήσετε τις διαδικασίες μαζικής εγκατάστασης χωρίς να χρειάζεται να είστε διαχειριστής.
Έχετε συναντήσει ποτέ δεκάδες γραμματοσειρές που πρέπει να εγκαταστήσετε στο σύστημά σας; Windows και δεν θες να τα κάνεις ένα ένα; Ή μήπως θέλετε να αυτοματοποιήσετε τη διαδικασία για να την αναπτύξετε σε πολλά μηχανήματα από ένα γραφή ή ανάπτυξη; Το PowerShell, η ισχυρή κονσόλα διαχείρισης των Windows, μπορεί να σας βοηθήσει να το κάνετε αυτό, είτε είστε διαχειριστής είτε όχι.
Σε αυτό το άρθρο θα σας δείξουμε πώς να εγκαταστήσετε γραμματοσειρές χρησιμοποιώντας το PowerShell., καλύπτοντας τα πάντα, από τα πιο βασικά — όπως η αντιγραφή αρχείων στον φάκελο Fonts — έως την επεξεργασία του Μητρώου των Windows για την καταχώριση της γραμματοσειράς ως εγκατεστημένης. Θα εξερευνήσουμε επίσης πώς να αυτοματοποιήσετε αυτήν την εργασία μαζικά, τι να κάνετε εάν δεν έχετε δικαιώματα διαχειριστή και πώς μπορείτε να προσαρμόσετε το PowerShell με εργαλεία όπως το Oh My Posh και το Fonts Nerd.
Τι πρέπει να γνωρίζετε πριν εγκαταστήσετε γραμματοσειρές από το PowerShell;
Τα Windows διαχειρίζονται τις εγκατεστημένες γραμματοσειρές χρησιμοποιώντας δύο κύριους μηχανισμούς: το σύστημα αρχείων, μέσω του φακέλου %windir%\Fonts, και το Μητρώο των Windows, όπου διατηρείται ένα ευρετήριο που επιτρέπει στο σύστημα να ανιχνεύει και να φορτώνει γραμματοσειρές.
Για να αναγνωριστεί σωστά μια γραμματοσειρά από το σύστημα, δεν αρκεί απλώς να το αντιγράψετε στον φάκελο Γραμματοσειρές. Πρέπει επίσης να καταχωρηθεί στο Μητρώο. Υπάρχουν συναρτήσεις αφιερωμένες σε αυτήν την εργασία, όπως AddFontResource y AddFontResourceEx.
Προσωρινή εγκατάσταση γραμματοσειρών με το PowerShell
Εάν χρειάζεστε μόνο μία πηγή διαθέσιμη κατά την τρέχουσα συνεδρία, μπορείτε να το φορτίσετε προσωρινά χρησιμοποιώντας AddFontResourceΕίναι σημαντικό να σημειωθεί ότι θα διαγραφεί κατά την επανεκκίνηση του συστήματος:
public static extern int AddFontResource(string lpszFilename);
$fuente = "C:\ruta\a\tu\fuente.ttf"
AddFontResource $fuente
Αυτή η μέθοδος είναι έγκυρη μόνο όσο η συνεδρία είναι ενεργή.Αν θέλετε η γραμματοσειρά να παραμείνει εγκατεστημένη μετά την επανεκκίνηση του συστήματος, πρέπει να εκτελέσετε μια μόνιμη εγκατάσταση.
Μόνιμη εγκατάσταση γραμματοσειρών χρησιμοποιώντας το PowerShell

Για μια μόνιμη εγκατάσταση, πρέπει να αντιγράψετε τον πηγαίο κώδικα στον συγκεκριμένο φάκελο του συστήματος (%windir%\Fonts) και στη συνέχεια καταχωρήστε το όνομά του στο Μητρώο.
$fuente = "C:\ruta\a\tu\fuente.ttf"
$nombreFuente = "NombreFuente (TrueType)"
$destino = "$env:windir\Fonts\$(Split-Path $fuente -Leaf)"
Copy-Item $fuente -Destination $destino
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $nombreFuente -PropertyType String -Value $(Split-Path $fuente -Leaf) -Force
::WriteInt32(::Zero, 0)
::WriteInt32(::Zero, 0)
Αφού καταχωρήσετε τη γραμματοσειρά, συνιστάται να στείλετε ένα μήνυμα αλλαγής στο σύστημα. για να αναγνωρίζουν οι εφαρμογές τη νέα γραμματοσειρά χωρίς επανεκκίνηση:
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
$WM_FONTCHANGE = 0x001D
$HWND_BROADCAST = 0xffff
SendMessage $HWND_BROADCAST $WM_FONTCHANGE ::Zero ::Zero
Αυτοματοποίηση μαζικής εγκατάστασης γραμματοσειρών από έναν φάκελο
Όταν έχετε πολλές γραμματοσειρές για εγκατάσταση, δεν είναι εφικτό να τις εγκαταστήσετε μία προς μία.Μια εναλλακτική λύση είναι η χρήση σεναρίων που ανιχνεύουν και επεξεργάζονται αυτόματα κάθε αρχείο από έναν φάκελο και τους υποφακέλους του, όπως τα σενάρια .bat.
Μια κλασική και ακόμη έγκυρη προσέγγιση στο PowerShell είναι η χρήση ενός σεναρίου που διατρέχει όλα τα αρχεία .ttf και .otf, τα αντιγράφει και τα καταχωρεί:
Get-ChildItem "C:\Fuentes" -Recurse -Include *.ttf, *.otf | ForEach-Object {
$archivo = $_.FullName
$nombre = $_.BaseName + " (TrueType)"
$destino = "$env:windir\Fonts\$($_.Name)"
Copy-Item $archivo -Destination $destino
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $nombre -PropertyType String -Value $_.Name -Force
}
Για να λειτουργήσουν όλα αυτά, το PowerShell πρέπει να εκτελείται με δικαιώματα διαχειριστή.Διαφορετικά, δεν θα έχει πρόσβαση στο μητρώο του συστήματος ή στον φάκελο Fonts.
Εγκατάσταση γραμματοσειρών χωρίς δικαιώματα διαχειριστή
Σε περιβάλλοντα όπου δεν έχετε δικαιώματα διαχειριστή, εξακολουθεί να είναι δυνατή η εγκατάσταση γραμματοσειρών τοπικά για τον τρέχοντα χρήστη. Η Microsoft το επιτρέπει αυτό από τα Windows 10 μέσω της επιλογής "Εγκατάσταση μόνο για εμένα".
Επιπλέον, μπορείτε να χρησιμοποιήσετε τη μεταβλητή περιβάλλοντος $env:LOCALAPPDATA για να αντιγράψετε γραμματοσειρές στον υποφάκελο "Γραμματοσειρές" του χρήστη. Παρόλο που δεν θα είναι διαθέσιμες για όλες τις εφαρμογές, θα λειτουργούν στις περισσότερες σύγχρονες.
Μερικά εργαλεία όπως regfont.exe σας επιτρέπει να καταχωρείτε πηγές από το διαδίκτυο εντολές ακόμη και χωρίς αυξημένα δικαιώματα: Περισσότερες πληροφορίες σχετικά με τη διαχείριση πρόσθετων στο Office.
Αυτή η προσέγγιση διευκολύνει την εγκατάσταση σε περιβάλλοντα με περιορισμένες λειτουργίες ή περιοριστικές πολιτικές., όπως σχολεία ή επιχειρήσεις.
Προσαρμογή του PowerShell με τις γραμματοσειρές Oh My Posh και Nerd
Μια αυξανόμενη τάση είναι η προσαρμογή της κονσόλας PowerShell με πιο εντυπωσιακά και λειτουργικά οπτικά στυλ.Το εργαλείο Oh My Posh σάς επιτρέπει να εφαρμόζετε θέματα στην προτροπή σας και απαιτεί ειδικές γραμματοσειρές: Nerd Fonts.
Αυτές οι γραμματοσειρές περιλαμβάνουν χρήσιμα εικονίδια και σύμβολα που κάνουν την προτροπή πιο κατατοπιστική. Για να το κάνετε αυτό, πρέπει να εγκαταστήσετε γραμματοσειρές όπως Γραμματοσειρά MesloLGM Nerd, είτε για όλους τους χρήστες είτε μόνο για τον τρέχοντα.
Εγκατάσταση γραμματοσειράς Nerd από το PowerShell
Εάν έχετε WinGet έχει ρυθμιστεί, μπορείτε να εγκαταστήσετε απευθείας μια γραμματοσειρά: Οδηγός για την εγκατάσταση του Kodi σε Smart TV
winget install --id=Ryanoasis.NerdFonts.Meslo --scope=user
Στη συνέχεια, θα χρειαστεί να ρυθμίσετε τον τερματικό σας ή τον κώδικα του Visual Studio ώστε να χρησιμοποιεί τη νέα γραμματοσειρά ως προεπιλογή. Για να το κάνετε αυτό:
- Άνοιγμα ρυθμίσεων τερματικού των Windows (Ctrl + ,)
- Επεξεργαστείτε το αρχείο
settings.json - Προσθέστε την ιδιοκτησία
"font.face": "MesloLGM Nerd Font"εντός του επιθυμητού προφίλ
Επεξεργαστείτε το προφίλ PowerShell για να εφαρμόσετε θέματα
Το PowerShell σάς επιτρέπει να διαμορφώσετε ένα προφίλ που εκτελείται κάθε φορά που ανοίγετε την κονσόλαΓια να εφαρμόσετε ένα θέμα Oh My Posh, πρέπει να επεξεργαστείτε το αρχείο που υποδεικνύεται από τη μεταβλητή $PROFILE και προσθέστε μια εντολή όπως αυτή:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\zash.omp.json" | Invoke-Expression
Αυτό θα εφαρμόζει αυτόματα το θέμα της προτίμησής σας κάθε φορά που ξεκινάτε το PowerShell.
Αντιμετώπιση σφαλμάτων εμφάνισης χαρακτήρων στο PowerShell
Σε ορισμένα συστήματα όπου χρησιμοποιούνται γλώσσες όπως τα κινέζικα, τα ιαπωνικά ή τα κορεατικά, η κονσόλα PowerShell ενδέχεται να αντιμετωπίζει προβλήματα με τη σωστή εμφάνιση χαρακτήρων. Αυτό το πρόβλημα συνήθως σχετίζεται με την προεπιλεγμένη γραμματοσειρά.
Μια λύση είναι να αλλάξετε χειροκίνητα τη γραμματοσειρά που χρησιμοποιείται από το PowerShell σε μια συμβατή, όπως π.χ. MS Gothic, το οποίο μπορείτε να κάνετε από τις ιδιότητες του παραθύρου PowerShell.
Επεκτείνετε το περιβάλλον PowerShell σας με χρήσιμες ενότητες
Εκτός από την εγκατάσταση γραμματοσειρών, μπορείτε να βελτιώσετε περαιτέρω την εμπειρία σας στην κονσόλα με πρόσθετα εργαλεία: για να βελτιώσετε την εμπειρία PowerShell.
- PSReadLineΒελτιώνει την επεξεργασία γραμμής εντολών με χρώματα και αυτόματη συμπλήρωση.
- Winfetch: Εμφανίζει οπτικά τις πληροφορίες συστήματος.
- Ρόπαλο: εναλλακτική λύση για την cat, με επισήμανση σύνταξης.
- Γολγοθάς: Σύγχρονη αντικατάσταση του ls, με υποστήριξη για git και μεταδεδομένα.
Κάθε μία από αυτές τις ενότητες μπορεί εύκολα να εγκατασταθεί από το PowerShell και να διαμορφωθεί στο προφίλ σας για να βελτιώσει την καθημερινή σας ροή εργασίας.
Η εγκατάσταση γραμματοσειρών μέσω PowerShell δεν είναι μόνο δυνατή, αλλά και πρακτική.Από την προσωρινή φόρτωση γραμματοσειρών έως τη μόνιμη εγκατάσταση και την προσαρμογή της κονσόλας σας με οπτικά εργαλεία, αυτή η τεχνική καλύπτει ένα ευρύ φάσμα σεναρίων. Επιπλέον, με επιλογές αυτοματοποίησης διαδικασιών μαζικά ή χωρίς δικαιώματα διαχειριστή, αποτελεί μια ευέλικτη λύση τόσο για οικιακούς χρήστες όσο και για επιχειρηματικά περιβάλλοντα.
Παθιασμένος συγγραφέας για τον κόσμο των byte και της τεχνολογίας γενικότερα. Μου αρέσει να μοιράζομαι τις γνώσεις μου μέσω της γραφής, και αυτό θα κάνω σε αυτό το blog, θα σας δείξω όλα τα πιο ενδιαφέροντα πράγματα σχετικά με τα gadget, το λογισμικό, το υλικό, τις τεχνολογικές τάσεις και πολλά άλλα. Στόχος μου είναι να σας βοηθήσω να περιηγηθείτε στον ψηφιακό κόσμο με απλό και διασκεδαστικό τρόπο.