- PowerShell ช่วยให้คุณสามารถติดตั้งแบบอักษรสำหรับทั้งระบบและผู้ใช้เฉพาะได้
- สามารถใช้สคริปต์ร่วมกับ AddFontResource และ Registry เพื่อการติดตั้งแบบถาวร
- มีทางเลือกที่ทันสมัย เช่น การติดตั้งแบบอักษรจาก Nerd Fonts เพื่อปรับแต่ง สถานีปลายทาง.
- เป็นไปได้ที่จะทำให้กระบวนการติดตั้งจำนวนมากเป็นแบบอัตโนมัติโดยไม่จำเป็นต้องเป็นผู้ดูแลระบบ
คุณเคยพบกับแบบอักษรนับสิบแบบที่คุณจำเป็นต้องติดตั้งบนระบบของคุณหรือไม่? Windows แล้วคุณไม่อยากทำทีละอย่างใช่ไหม? หรือคุณต้องการทำให้กระบวนการเป็นแบบอัตโนมัติเพื่อนำไปใช้กับเครื่องหลายเครื่องจากเครื่องเดียว ต้นฉบับ หรือการปรับใช้? PowerShell ซึ่งเป็นคอนโซลการจัดการ Windows ที่ทรงพลังสามารถช่วยให้คุณทำสิ่งนั้นได้ ไม่ว่าคุณจะเป็นผู้ดูแลระบบหรือไม่ก็ตาม
ในบทความนี้เราจะสอนวิธีการติดตั้งแบบอักษรโดยใช้ PowerShellครอบคลุมทุกอย่างตั้งแต่ขั้นพื้นฐานที่สุด เช่น การคัดลอกไฟล์ไปยังโฟลเดอร์ Fonts ไปจนถึงการแก้ไขรีจิสทรีของ Windows เพื่อลงทะเบียนแบบอักษรตามที่ติดตั้งไว้ นอกจากนี้ เราจะสำรวจวิธีการทำให้งานนี้เป็นแบบอัตโนมัติเป็นกลุ่ม สิ่งที่ต้องทำหากคุณไม่มีสิทธิ์ของผู้ดูแลระบบ และวิธีปรับแต่ง PowerShell ด้วยเครื่องมือเช่น Oh My Posh และ Fonts Nerd
คุณต้องทราบอะไรบ้างก่อนที่จะติดตั้งแบบอักษรจาก PowerShell?
Windows จัดการแบบอักษรที่ติดตั้งโดยใช้กลไกหลักสองประการ: ระบบไฟล์ผ่านโฟลเดอร์ %windir%\Fonts และ Windows Registry ที่มีการรักษาดัชนีที่ช่วยให้ระบบตรวจจับและโหลดแบบอักษรได้
เพื่อให้ระบบรู้จักฟอนต์ได้อย่างถูกต้องการคัดลอกไปยังโฟลเดอร์ Fonts เพียงอย่างเดียวไม่เพียงพอ แต่ยังต้องลงทะเบียนใน Registry ด้วย มีฟังก์ชันเฉพาะสำหรับงานนี้ เช่น AddFontResource y AddFontResourceEx.
การติดตั้งฟอนต์ชั่วคราวด้วย PowerShell
หากคุณต้องการแหล่งข้อมูลเพียงแหล่งเดียวที่สามารถใช้งานได้ระหว่างเซสชันปัจจุบันคุณสามารถชาร์จชั่วคราวได้โดยใช้ AddFontResourceสิ่งสำคัญที่ต้องทราบคือจะถูกลบออกเมื่อรีบูตระบบ:
public static extern int AddFontResource(string lpszFilename);
$fuente = "C:\ruta\a\tu\fuente.ttf"
AddFontResource $fuente
วิธีการนี้ใช้ได้เฉพาะในขณะที่เซสชันกำลังใช้งานอยู่เท่านั้นหากคุณต้องการให้แบบอักษรยังคงติดตั้งอยู่หลังจากรีบูตระบบ คุณจำเป็นต้องดำเนินการติดตั้งแบบถาวร
การติดตั้งแบบอักษรอย่างถาวรโดยใช้ PowerShell

สำหรับการติดตั้งแบบถาวร คุณจำเป็นต้องคัดลอกแหล่งที่มาไปยังโฟลเดอร์ที่ระบุ ของระบบ (%windir%\Fonts) จากนั้นลงทะเบียนชื่อใน Registry
$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 จะต้องทำงานด้วยสิทธิ์ของผู้ดูแลระบบมิฉะนั้น จะไม่สามารถเข้าถึงรีจิสทรีระบบหรือโฟลเดอร์แบบอักษรได้
การติดตั้งแบบอักษรโดยไม่มีสิทธิ์ผู้ดูแลระบบ
ในสภาพแวดล้อมที่คุณไม่มีสิทธิ์ผู้ดูแลระบบคุณยังสามารถติดตั้งแบบอักษรในเครื่องสำหรับผู้ใช้ปัจจุบันได้ Microsoft อนุญาตให้ทำได้ตั้งแต่ Windows 10 ผ่านตัวเลือก "ติดตั้งสำหรับฉันเท่านั้น"
นอกจากนี้คุณสามารถใช้ตัวแปรสภาพแวดล้อมได้ $env:LOCALAPPDATA เพื่อคัดลอกแบบอักษรไปยังโฟลเดอร์ย่อยแบบอักษรของผู้ใช้ แม้ว่าแบบอักษรเหล่านี้จะไม่พร้อมใช้งานสำหรับแอปทั้งหมด แต่แบบอักษรเหล่านี้สามารถใช้งานได้กับแอปส่วนใหญ่ที่ทันสมัย
เครื่องมือบางอย่างเช่น รีจิฟฟอนต์.exe ให้คุณลงทะเบียนแหล่งข้อมูลจากระบบออนไลน์ได้ คำสั่ง แม้ว่าจะไม่มีสิทธิ์ยกระดับ: ข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Add-in ใน Office.
แนวทางนี้ทำให้การติดตั้งสะดวกยิ่งขึ้นในสภาพแวดล้อมที่ถูกล็อคหรือมีข้อจำกัดด้านนโยบายเช่นโรงเรียน หรือธุรกิจต่างๆ
การปรับแต่ง PowerShell ด้วย Oh My Posh และแบบอักษร Nerd
แนวโน้มที่เพิ่มขึ้นคือการปรับแต่งคอนโซล PowerShell ด้วยรูปแบบภาพที่โดดเด่นและใช้งานได้จริงมากขึ้นเครื่องมือ Oh My Posh ช่วยให้คุณสามารถใช้ธีมให้กับข้อความของคุณและต้องใช้แบบอักษรพิเศษ: Nerd Fonts
แบบอักษรเหล่านี้มีไอคอนและสัญลักษณ์ที่เป็นประโยชน์ซึ่งทำให้คำแนะนำมีข้อมูลมากขึ้น หากต้องการทำเช่นนี้ คุณต้องติดตั้งแบบอักษรเช่น ฟอนต์ MesloLGM สำหรับเนิร์ดไม่ว่าจะเป็นสำหรับผู้ใช้ทั้งหมดหรือเฉพาะผู้ใช้ปัจจุบันเท่านั้น
ติดตั้งฟอนต์ Nerd จาก PowerShell
หากคุณมี WinGet กำหนดค่าแล้ว คุณสามารถติดตั้งแบบอักษรได้โดยตรง: คำแนะนำในการติดตั้ง Kodi บน Smart TV
winget install --id=Ryanoasis.NerdFonts.Meslo --scope=user
ขั้นต่อไป คุณจะต้องกำหนดค่าเทอร์มินัลหรือ Visual Studio Code ของคุณให้ใช้แบบอักษรใหม่เป็นค่าเริ่มต้น โดยทำดังนี้:
- เปิดการตั้งค่าเทอร์มินัลของ 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 ใช้เป็นแบบที่เข้ากันได้ด้วยตนเอง เช่น เอ็มเอส โกธิคซึ่งคุณสามารถทำได้จากคุณสมบัติของหน้าต่าง PowerShell
ขยายสภาพแวดล้อม PowerShell ของคุณด้วยโมดูลที่มีประโยชน์
นอกจากการติดตั้งแบบอักษรแล้ว คุณยังสามารถปรับปรุงประสบการณ์คอนโซลของคุณให้ดีขึ้นด้วยเครื่องมือเพิ่มเติม: เพื่อปรับปรุงประสบการณ์ PowerShell.
- PSReadLine:ปรับปรุงการแก้ไขบรรทัดคำสั่งด้วยสีและการเติมคำอัตโนมัติ
- ชนะ: แสดงข้อมูลระบบในรูปแบบภาพ
- ค้างคาว:ทางเลือกสำหรับแมว พร้อมการเน้นไวยากรณ์
- โกรธา:การทดแทน ls ที่ทันสมัยพร้อมรองรับ git และ metadata
สามารถติดตั้งโมดูลเหล่านี้แต่ละโมดูลได้อย่างง่ายดายจาก PowerShell และกำหนดค่าในโปรไฟล์ของคุณเพื่อปรับปรุงเวิร์กโฟลว์ประจำวันของคุณ
การติดตั้งแบบอักษรผ่าน PowerShell ไม่เพียงเป็นไปได้ แต่ยังใช้งานได้จริงอีกด้วยตั้งแต่การโหลดฟอนต์ชั่วคราวไปจนถึงการติดตั้งถาวร ไปจนถึงการปรับแต่งคอนโซลของคุณด้วยเครื่องมือภาพ เทคนิคนี้ครอบคลุมสถานการณ์ต่างๆ มากมาย นอกจากนี้ ด้วยตัวเลือกในการทำให้กระบวนการต่างๆ เป็นแบบอัตโนมัติเป็นกลุ่มหรือไม่มีสิทธิ์ของผู้ดูแลระบบ จึงทำให้กลายเป็นโซลูชันที่คล่องตัวสำหรับทั้งผู้ใช้ตามบ้านและสภาพแวดล้อมทางธุรกิจ
นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน