Terminal: Windows 10 1809 / 19H1 / 20H1 merusak pengaturan konsol Powershell. Tetap terbuka dengan font raster.

Dibuat pada 11 Okt 2018  ·  87Komentar  ·  Sumber: microsoft/terminal

Windows 10 1809 merusak pengaturan konsol Powershell. Powershell terus membuka dengan font raster. Anda dapat mengubah pengaturan dan melihat hasilnya, tetapi ketika Anda membuka pengaturan lagi (dengan atau tanpa menutup peralihan PowerShell) font telah diatur ulang ke font raster dalam ukuran 12.

Sunting: Ditingkatkan dari 1803. Lokal Jerman.

https://aka.ms/AA37kk1

Area-Fonts Issue-Bug Product-Powershell

Komentar yang paling membantu

Hal yang sama terjadi pada saya hanya saat menggunakan font Consolas. Jika saya menggunakan yang lain - Courier New, Lucida Console, dll. - pengaturan dipertahankan.

Semua 87 komentar

Hal yang sama terjadi pada saya hanya saat menggunakan font Consolas. Jika saya menggunakan yang lain - Courier New, Lucida Console, dll. - pengaturan dipertahankan.

@ 50Wliu Saya dapat memastikan perilaku itu. Consolas mengatur ulang ke font raster. Konsol Lucida tetap menjadi Konsol Lucida.

Saya hampir yakin ini ada hubungannya dengan fakta bahwa versi baru PSReadline menggunakan codepage UTF8 untuk menampilkan promptnya, dan ketika itu terjadi, konsol mencoba menghitung ulang font.

Saya pikir kami mengalami beberapa masalah saat melacak ini sebelumnya, tetapi sepertinya saya tidak dapat menemukannya. @bitcrazed, apakah Anda ingat di mana mereka berada? Atau apakah itu utas email internal dengan @lzybkr dan @ SteveL-MSFT?

Bisakah seseorang memberikan teguran yang tepat? Seperti font apa yang Anda atur ke pintasan. Font apa yang disetel?

  • Win-R dan jalankan powershell .
  • Ini dimulai dengan font raster.
  • Masuk ke pengaturan dan atur font ke Consolas. Klik OK.
  • Consolas sedang diterapkan.
  • Tutup Powershell.
  • Buka kembali PowerShell seperti sebelumnya.
  • Font adalah font raster lagi.
  • Masuk ke pengaturan default dan atur font ke Consolas. Klik OK.
  • Tutup Powershell.
  • Buka kembali PowerShell seperti sebelumnya.
  • Font adalah font raster lagi.

Saya tidak berpikir ini bahkan salah Powershell. Saya memiliki catatan di sekitar sini di suatu tempat bahwa salah satu .NETFrameworks terbaru (4.7something) tiba-tiba memutuskan untuk menggunakan 65001 sebagai halaman kode default untuk semua aplikasi dan ketika itu bolak-balik dengan alat dan halaman kode lain saat mereka mulai dan keluar, kami menghitung ulang font.

Saya memiliki bug untuk mencoba membuatnya tidak terlalu menyakitkan, tetapi sebenarnya membalik halaman kode secara tiba-tiba yang membuat ini menjadi masalah.

Saya tidak dapat mereproduksi ini di sini. Baik Windows PowerShell dan Powershell keduanya memulai dengan font yang saya tetapkan.

@Borkason Sudahkah Anda mencoba concfg clean
https://github.com/lukesampson/concfg

@borakson - lokal mana yang dikonfigurasi Windows Anda untuk digunakan?

@bitcrazed Saya bukan @Borkason tetapi karena saya mengalami masalah ini, saya akan menjawabnya juga.

Bahasa tampilan saya adalah Spanyol (Spanyol), dan begitu juga format regional saya. Bahasa untuk program yang tidak mendukung Unicode adalah bahasa Inggris (Amerika Serikat), dan saya telah memilih kotak centang beta untuk UTF-8 Unicode. (Semoga itu yang Anda cari ... beri tahu saya jika Anda meminta sesuatu yang lain)

@Jerman . Dan saya mengupgrade dari 1803. Lupa maksudnya itu.

@ doctordns font yang mana?

@ doctordns font yang mana?

Saya menggunakan Konsol Lucida (18 pt). Tapi saya telah menguji yang lain dan mereka juga berfungsi setelah restart Windows PowerShell.

Hal yang sama terjadi pada saya hanya saat menggunakan font Consolas. Jika saya menggunakan yang lain - Courier New, Lucida Console, dll. - pengaturan dipertahankan.

Ini kemungkinan telah diperbaiki oleh karya terbaru @lzybkr : https://github.com/lzybkr/PSReadLine/issues/542

@ Borkason & @doctordns - dapatkah Anda mengonfirmasi dan menutup jika sudah diperbaiki?

Terima kasih.

@bitcrazed sepertinya masalah yang Anda rujuk telah diperbaiki pada tahun 2017 dan sejauh yang saya tahu sudah termasuk dalam versi PSReadLine yang dikirimkan bersama 1809. Selain itu, masalah ini masih terjadi pada saya pada Windows Insiders build 18277.

@bitcrazed Itu satu tahun lebih tua dari rilis 1809. Saya tidak akan menyebutnya "baru-baru ini".

Dan bagi saya tidak ada yang berubah. Saya menggunakan Windows 10 build 17763.107

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.1
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.1
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Tapi seperti yang sudah dikatakan @ 50Wliu , itu bahkan tidak diperbaiki dalam pratinjau saat ini.

Berikut ini tautan ke Umpan Balik: https://aka.ms/AA37kk1

@bitcrazed terkait dengan masalah yang menyebabkan masalah tersebut.

Perbaikannya ada di PR ini: https://github.com/lzybkr/PSReadLine/pull/771

Cukup adil. Apakah diketahui dengan build apa yang akan dikirimkan perbaikan?

Saya akan mencoba merilis beta lain ke Galeri PowerShell sebelum akhir tahun, tetapi saya tidak tahu tentang Windows (saya tidak bekerja di Windows).

@ SteveL-MSFT memiliki bit yang dikirimkan di Windows, jadi mungkin dia bisa berkomentar.

Nilai Nama
---- -----
PSVersion 5.1.17763.134
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
BuildVersion 10.0.17763.134
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

sama disini ... siap untuk install ulang windows, SANGAT menyakitkan!

Masalah ini tampaknya terkait dengan font. Saya mendapat masalah di Powershell dengan windows (cmd dan inti Powershell tidak memiliki masalah ini) ketika saya mengatur font sebagai 'Konsol', tetapi ketika saya mengubah font sebagai 'Sarasa Mono SC', semuanya bekerja dengan sempurna. Saya menggunakan 'Sarasa Mono SC' untuk menampilkan karakter UTF-8, Windows 10 tidak memiliki font default dapat menampilkan cukup karakter UTF-8.

Sama disini. Baik Surface & PC desktop saya.

Anehnya saya pikir saya mengalami masalah yang sama tetapi dari cara yang berbeda. Setiap kali subproses dibuka untuk menjalankan powershell.exe, font konsol berubah menjadi raster dari Consolas.

Contoh 1: Saya menjalankan vim (WSL) dan menjalankan sub perintah PowerShell untuk mendapatkan clipboard sistem. Setiap kali saya menjalankan perintah itu, itu mengatur ulang font konsol ke font raster.

Contoh 2: Saya memiliki skrip shell yang menjalankan PowerShell sebagai subproses untuk mendapatkan server nama sistem. Ini menyebabkan hal yang sama terjadi pada konsol, peralihan ke font raster. Tidak ada output ke konsol. Semuanya terjadi di subproses.

Bagian yang benar-benar aneh adalah jika saya menjalankan PowerShell secara manual dari konsol (WSL), maka tidak masalah dan font tidak berubah.

@bitcrazed , @ SteveL-MSFT, @lzybkr : Saya memiliki repro minimal yang bagus. Ini mulai terjadi tepat setelah saya mengupgrade mesin ke Windows 1809. Saya telah mengatur font dan konsol CP sebelumnya, seperti di bawah ini, ke Consolas dan 65001 masing-masing, dan semuanya bekerja dengan baik. Saya bekerja dengan file UTF-8, jadi CP 65001 sangat penting bagi saya. Lokal saya adalah en-US tua biasa, bahasa Inggris Windows 10 x64 Pro, dan OEM CP adalah default 437.

  1. Tetapkan kunci registri berikut (simpan sebagai .reg dan impor). Untuk beberapa alasan, penting untuk mengubah FontFamily, karena defaultnya mungkin berbeda, dan font tidak akan diterapkan.
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console]
"FaceName"="Consolas"
"FontFamily"=dword:00000036
"FontSize"=dword:000f0000
"FontWeight"=dword:00000190
"CodePage"=dword:0000fde9
  1. Menangkan + R cmd.exe ENTER . Konsol dimulai dengan font dan halaman kode yang benar. Ketik chcp ; mencetak 65001 (jika tidak, jalankan chcp 65001 ).
  2. di konsol, ketik powershell -noprof ('-noprof' untuk mengonfirmasi bahwa masalah tidak terkait dengan apa pun yang saya muat di profil saya).

Saat PowerShell dimulai, font konsol segera berubah menjadi font raster, dan ukuran jendela berubah untuk mengakomodasi. Font raster yang dipilih adalah Terminal, dan bahkan tidak memiliki karakter WGL4 (tanpa Cyrillic atau Yunani). Jadi ini pasti bug.

Perilaku tersebut berkembang biak meskipun menjalankan perintah non-interaktif, jadi agak diragukan bahwa bug terkait dengan PSReadLine:

powershell -noprof -nonint -command "echo foo"

Selain itu, font konsol juga berubah (pada dasarnya, konsol terbuka dalam font raster) jika PowerShell dijalankan melalui pintasan, atau dari dialog Win + R, atau dengan mengklik dua kali di Explorer.

Juga, beberapa negatif. Font tidak berubah jika:

  • Saya menjalankan chcp 437 sebelum meminta powershell dari cmd.
  • Font konsol disetel dalam registri ke "Konsol Lucida" (yang lainnya tetap sama seperti di atas). Bahwa font ini entah bagaimana "spesial" telah dicatat di komentar di tiket ini.

Tema umum dalam komentar dalam terbitan ini adalah, saya yakin, lokal Eropa non-AS (Jerman dan Spanyol disebutkan). Jadi saya mencoba yang berikut ini:

  1. Mulai cmd.exe
  2. Setel halaman kode konsol dengan chcp NNN (lihat di bawah):
  3. Jalankan powershell -noprof .
  • Dengan NNN = 437, 1252, 1251, 1253, 850, 852, 869, 857, 737 - tidak ada perubahan font
  • Dengan NNN = 65001, 858, dan non-WGL4 Hebrew 862, Arabic 864 - font berubah.

Apa yang membedakan CP 858? Tebakan saya mungkin ini kuncinya. Nama CP adalah "OEM Multilingual Latin 1 + simbol Euro".

Juga penting adalah bahwa chcp 1255 dan chcp 1266 (Ibrani dan Arab) mengubah font menjadi "Courier New" bahkan dalam cmd.exe . Jadi PowerShell mungkin hanya lebih rentan, bukan penyebab utamanya?

Info versi wajib:

C:\Users\kkm> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.134
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.134
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Juga, saya harus menyebutkan, meskipun ini kemungkinan besar tidak relevan: Saya memiliki tampilan DPI tinggi dengan skala tampilan diatur ke 150%.

@ kkm000 Ini telah diperbaiki di PSReadLine (https://github.com/lzybkr/PSReadLine/pull/771), tetapi tidak ada dalam build Windows yang Anda gunakan, meskipun perbaikan telah diperiksa ke dalam build Windows yang lebih baru. Saya yakin Beta publik terbaru dari PSReadLine telah memperbaikinya, sehingga Anda dapat menginstalnya di Windows PowerShell menggunakan:

install-module psreadline -AllowPrerelease -Repository PSGallery -Force
# restart PowerShell to load the new one

Jika mengeluh bahwa -AllowPrerelease tidak ditemukan, Anda harus memperbarui PowerShellGet:

install-module powershellget -Scope CurrentUser -Repository psgallery -Force -AllowClobber
# restart PowerShell to load the new one

meskipun perbaikan telah diperiksa ke versi Windows yang lebih baru.

Apakah ini berarti bahwa perbaikan akan datang pada rilis Insiders (19H1) di masa mendatang?

@ 50Wliya ya

@ SteveL-MSFT saya memiliki versi yang sama seperti @ kkm000 , saya menjalankan perintah dan tidak bekerja untuk saya, saya melewatkan sesuatu?

@ SteveL-MSFT Saya merasa sangat mengecewakan bahwa ini tidak dapat dikirimkan dengan Pembaruan Windows biasa. Jika Microsoft merusak sesuatu dengan pembaruan, itu tanggung jawab mereka untuk memperbaikinya dengan pembaruan dan tidak menundanya selama lebih dari enam bulan dan berencana untuk mengirimkannya dengan versi Windows berikutnya, atau meminta orang-orang melompat melalui rintangan untuk mendapatkan perbaikan terbaru dari pra- rilis repositori (yang bahkan tidak berfungsi untuk semua orang).

jadi .... Saya harus menjalankan perintah itu lebih dari sekali

install-module powershellget -Scope CurrentUser -Repository psgallery -Force -AllowClobber

dengan PowerShell yang dijalankan sebagai admin, taskmgr untuk mematikan PowerShell dan kemudian melakukannya lagi karena gagal dua atau tiga kali. Dan… sepertinya berhasil! Pengaturan tampilan yang disesuaikan di $ PROFILE saya sekarang berperilaku seperti sebelum peningkatan.

Ini baru saja mulai terjadi pada saya setelah peningkatan ke versi 1809 17763.292 terbaru dari pembaruan kumulatif 1809 sebelumnya. Saya mengikuti instruksi untuk menginstal PSReadLine baru dan tampaknya ada di sana:

Script 2.0.0 PSReadLine {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remov
saya sudah

PSVersion 5.1.17763.134

Font Consolas diganti dengan font raster.

MEMPERBARUI

ini tampaknya dengan perbaikan yang tidak stabil. Sekarang setelah reboot, perbaikannya ditahan / berfungsi, terlepas dari level run.


Perilaku menarik yang sekarang saya lihat. Setelah menjalankan 'fix' di laptop saya
Nilai Nama
---- -----
PSVersion 5.1.17763.134
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
BuildVersion 10.0.17763.134
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

saat menjalankan PS dalam mode pengguna, perbaikan baik-baik saja; saat menjalankan PS sebagai admin, perbaikan tidak berfungsi.

Tidak berfungsi untuk saya bahkan dalam mode pengguna.

@ SteveL-MSFT, sepertinya perbaikan tidak berhasil untuk saya. Juga, tampaknya Install-Module tidak mengubah apapun. Saya sudah memiliki PowerShellGet terbaru ( -AllowPrerelease pasti berfungsi; pengikatan kunci saya bergantung pada PSReadLine terbaru). Saya awalnya menginstal PSReadLine beberapa bulan yang lalu (sebelum memutakhirkan Windows!), Jadi saya berharap saya akan mendapatkan peningkatan hari ini dengan perintah yang Anda sarankan, tetapi saya tidak tahu bagaimana mengonfirmasi apakah ada yang benar-benar berubah. Bisakah Anda membantu? Saya mengambil versi PSReadLine sebelum mencoba meningkatkan:

C:\WINDOWS\system32> date

Saturday, February 2, 2019 13:46:02

C:\WINDOWS\system32> Get-Module PSReadline | fl Version

Version : 2.0.0

C:\WINDOWS\system32> Get-Module PSReadline | fl *

LogPipelineExecutionDetails : False
Name                        : PSReadline
Path                        : C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\PSReadLine.psm1
ImplementingAssembly        :
Definition                  : function PSConsoleHostReadLine
                              {
                                  Microsoft.PowerShell.Core\Set-StrictMode -Off
                                  [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($host.Runspace, $ExecutionContext)
                              }

Description                 : Great command line editing in the PowerShell console host
Guid                        : 5714753b-2afd-4492-a5fd-01d9e2cff8b5
HelpInfoUri                 : https://go.microsoft.com/fwlink/?LinkId=528806
ModuleBase                  : C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0
PrivateData                 : {PSData}
Tags                        : {}
ProjectUri                  :
IconUri                     :
LicenseUri                  :
ReleaseNotes                :
RepositorySourceLocation    : https://www.powershellgallery.com/api/v2/
Version                     : 2.0.0
ModuleType                  : Script
Author                      : Microsoft Corporation
AccessMode                  : ReadWrite
ClrVersion                  : 4.0.0
CompanyName                 : Microsoft Corporation
Copyright                   : (c) Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion      : 4.6.1
ExportedFunctions           : {[PSConsoleHostReadLine, PSConsoleHostReadLine]}
Prefix                      :
ExportedCmdlets             : {[Get-PSReadLineKeyHandler, Get-PSReadLineKeyHandler], [Get-PSReadLineOption,
                              Get-PSReadLineOption], [Remove-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler],
                              [Set-PSReadLineKeyHandler, Set-PSReadLineKeyHandler]...}
ExportedCommands            : {[Get-PSReadLineKeyHandler, Get-PSReadLineKeyHandler], [Get-PSReadLineOption,
                              Get-PSReadLineOption], [Remove-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler],
                              [Set-PSReadLineKeyHandler, Set-PSReadLineKeyHandler]...}
FileList                    : {}
CompatiblePSEditions        : {}
ModuleList                  : {}
NestedModules               : {Microsoft.PowerShell.PSReadLine}
PowerShellHostName          :
PowerShellHostVersion       :
PowerShellVersion           : 5.0
ProcessorArchitecture       : None
Scripts                     : {}
RequiredAssemblies          : {}
RequiredModules             : {}
RootModule                  : PSReadLine.psm1
ExportedVariables           : {}
ExportedAliases             : {}
ExportedWorkflows           : {}
ExportedDscResources        : {}
SessionState                : System.Management.Automation.SessionState
OnRemove                    :
ExportedFormatFiles         : {C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\PSReadLine.format.ps1xml}
ExportedTypeFiles           : {}

Lalu saya meningkatkan, seperti yang Anda sarankan:

C:\WINDOWS\system32> install-module psreadline -AllowPrerelease -Repository PSGallery -Force
C:\WINDOWS\system32> exit

Install-Module bergejolak untuk sementara waktu, dan bilah kemajuan dengan tanda 'o' dicoret di bagian atas layar. Saya tidak percaya ini berarti apa-apa, tetapi mengulang Modul-Instalasi juga menyebabkan bilah kemajuan muncul sesaat. Tapi konsol baru masih mengalami masalah aslinya. Juga, saya tidak melihat perubahan apa pun di sini, mungkin Anda bisa melihat sesuatu? Saya pasti dapat melihat versi file dll yang saya miliki, saya hanya tidak tahu apa yang harus dicari.

Ini juga tidak melakukan apa-apa:

C:\WINDOWS\system32> Update-Module PSReadLine -AllowPrerelease
C:\WINDOWS\system32>

Di konsol baru, PSReadLine baru (?) Tampak sama:

C:\WINDOWS\system32> Get-Module PSReadline | fl *

LogPipelineExecutionDetails : False
Name                        : PSReadline
Path                        : C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\PSReadLine.psm1
ImplementingAssembly        :
Definition                  : function PSConsoleHostReadLine
                              {
                                  Microsoft.PowerShell.Core\Set-StrictMode -Off
                                  [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($host.Runspace, $ExecutionContext)
                              }

Description                 : Great command line editing in the PowerShell console host
Guid                        : 5714753b-2afd-4492-a5fd-01d9e2cff8b5
HelpInfoUri                 : https://go.microsoft.com/fwlink/?LinkId=528806
ModuleBase                  : C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0
PrivateData                 : {PSData}
Tags                        : {}
ProjectUri                  :
IconUri                     :
LicenseUri                  :
ReleaseNotes                :
RepositorySourceLocation    : https://www.powershellgallery.com/api/v2/
Version                     : 2.0.0
ModuleType                  : Script
Author                      : Microsoft Corporation
AccessMode                  : ReadWrite
ClrVersion                  : 4.0.0
CompanyName                 : Microsoft Corporation
Copyright                   : (c) Microsoft Corporation. All rights reserved.
DotNetFrameworkVersion      : 4.6.1
ExportedFunctions           : {[PSConsoleHostReadLine, PSConsoleHostReadLine]}
Prefix                      :
ExportedCmdlets             : {[Get-PSReadLineKeyHandler, Get-PSReadLineKeyHandler], [Get-PSReadLineOption,
                              Get-PSReadLineOption], [Remove-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler],
                              [Set-PSReadLineKeyHandler, Set-PSReadLineKeyHandler]...}
ExportedCommands            : {[Get-PSReadLineKeyHandler, Get-PSReadLineKeyHandler], [Get-PSReadLineOption,
                              Get-PSReadLineOption], [Remove-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler],
                              [Set-PSReadLineKeyHandler, Set-PSReadLineKeyHandler]...}
FileList                    : {}
CompatiblePSEditions        : {}
ModuleList                  : {}
NestedModules               : {Microsoft.PowerShell.PSReadLine}
PowerShellHostName          :
PowerShellHostVersion       :
PowerShellVersion           : 5.0
ProcessorArchitecture       : None
Scripts                     : {}
RequiredAssemblies          : {}
RequiredModules             : {}
RootModule                  : PSReadLine.psm1
ExportedVariables           : {}
ExportedAliases             : {}
ExportedWorkflows           : {}
ExportedDscResources        : {}
SessionState                : System.Management.Automation.SessionState
OnRemove                    :
ExportedFormatFiles         : {C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\PSReadLine.format.ps1xml}
ExportedTypeFiles           : {}

Juga, karena @ mjoyce6500 dan @wigster komentar di atas, saya memeriksa konsol pengguna (non-admin), dan itu juga menunjukkan bug seperti sebelumnya.

Tolong, saya akan menghargai bantuan / pemikiran yang mungkin Anda bagikan!

@ SteveL-MSFT, @lzybkr , saya kira tidak ada update di PSGallery. Beta terbaru telah diterbitkan sebulan sebelum masalah lzybkr / PSReadLine # 771 digabungkan:

C:\WINDOWS\system32> Find-Module PSReadline -Repository PSGallery -AllVersions -AllowPrerelease | ft name,ver*,pub*

Name       Version     PublishedDate
----       -------     -------------
PSReadLine 2.0.0-beta3 2018-09-04 21:59:13
PSReadLine 2.0.0-beta2 2018-06-04 20:28:42
PSReadLine 2.0.0-beta1 2017-12-06 07:22:16
PSReadLine 1.2         2016-01-25 20:43:22
PSReadLine 1.0.0.13    2015-02-18 00:28:18
PSReadLine 1.0.0.12    2014-08-26 19:04:26
PSReadLine 1.0.0.11    2014-06-13 21:15:30
PSReadLine 1.0.0.10    2014-06-13 02:21:13
PSReadLine 1.0.0.9     2014-06-11 21:20:46
PSReadLine 1.0.0.8     2014-05-07 22:20:52

Sayangnya, itu tidak termasuk ReleaseNotes lagi, seperti beta2. Tapi pengaturan waktu pasti mengecualikan kemungkinan ini.

Catatan tidak terkait, Penulis dan Perusahaan tampaknya ditukar:

C:\WINDOWS\system32> Find-Module PSReadline -req 2.0.0-beta3 -Repository PSGallery -AllowPrerelease | fl author,compan*

Author      : Microsoft Corporation
CompanyName : lzybkr

'Perbaikan' masih memberikan hasil yang beragam bagi saya. Powershell dalam mode pengguna berfungsi dengan baik, tidak ada perubahan pada warna / font khusus saya setelah menjalankan perintah yang disebutkan di atas. Meskipun Powershell dalam mode Admin tidak diperbaiki, menunjukkan perilaku yang dicatat dalam bug ini.

@ mjoyce6500 dapatkah Anda memberi saya langkah-langkah repro yang tepat? Perhatikan juga build Windows dan PSReadLine apa yang Anda gunakan. Terima kasih.

@ SteveL-MSFT, bisakah Anda melihat komentar saya di menemukan versi terbaru dari PSReadLine di PSGallery, sementara orang lain melaporkan "hasil yang beragam." Saat ini, versi tertinggi yang tersedia masih PSReadLine 2.0.0-beta3 18-09-04 21:59:13 , diterbitkan sebulan sebelum perbaikan digabungkan.

Juga, bagaimana cara mengetahui versi yang saya gunakan? Di komputer lain, di mana saya tidak pernah mencoba saran pembaruan Anda, periksa baris pertama file Changes.txt dari paket yang diinstal:

C:\WINDOWS\system32> Get-Module PSReadline | fl version,modulebase

Version    : 2.0.0
ModuleBase : C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0

C:\WINDOWS\system32> gc "C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\Changes.txt" | select -first 1
### Version 2.0.0-beta2

Kemudian, Install-Module memang mencoba menginstal 2.0.0-beta3, konfirmasi dengan menjalankan tanpa -force :

C:\WINDOWS\system32> install-module psreadline -AllowPrerelease -Repository PSGallery
WARNING: Version '2.0.0-beta2' of module 'PSReadline' is already installed at 'C:\Program
Files\WindowsPowerShell\Modules\PSReadline\2.0.0'. To install version '2.0.0-beta3', run Install-Module and add the -Force parameter, this command will install version '2.0.0-beta3' side-by-side with version '2.0.0-beta2'.

Apakah mungkin saya mendapatkan pembaruan bukan dari tempat yang dilakukan orang lain?

Setelah pembaruan, Changes.txt memiliki header 2.0.0-beta3 sebagai baris pertama:

C:\WINDOWS\system32> gc "C:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\Changes.txt" | select -first 1
### Version 2.0.0-beta3

Dan reproduksi yang sama seperti sebelumnya, konsol admin atau tidak. Dari konsol cmd.exe dengan font Consolas:

C:\WINDOWS\system32>chcp 65001
Active code page: 65001

C:\WINDOWS\system32>powershell -noprof -nonint
==== BOOM! font changes ===
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\WINDOWS\system32>

Tentu saja, saya tidak mengharapkannya bekerja, karena saya tidak memiliki DLL yang diperbarui. Pertanyaan saya adalah, bagaimana mungkin orang lain mengidapnya.

Mengalami masalah yang sama di sini, dan perbaikan di atas tidak berpengaruh.

Masih membingungkan bagaimana perbaikan itu bekerja (setidaknya sebagian) untuk minoritas orang, mengingat bahwa itu tidak pernah dirilis, melihat dari balik sepasang mata ini. Mengatakan saya bingung berarti tidak mengatakan apa-apa. Pemikiran saya saat ini adalah ada DUA galeri PS, dan perbaikannya telah dipublikasikan ke salah satu galeri yang hanya diakses oleh sedikit orang.

@ kkm000 Ada satu PSGery dan beta.3 adalah PSReadLine terbaru yang diterbitkan. Versi PSReadLine 2.0.0 yang dikirimkan di Win10 adalah cabang dari PSReadLine 2.0.0 dengan beberapa perbaikan spesifik yang lebih baru yang diambil sehingga dalam arti itu lebih maju dari yang dipublikasikan di PSGallery.

@ SteveL-MS
Saya menginstal beta3 dan tidak ada yang terselesaikan.
Baik dengan Windows 1809 dan 1903 (Build 18334.1)

@Borkason perbaikan untuk tidak mengubah font jika tidak menggunakan font raster seharusnya sudah ada di build itu. Font apa yang Anda gunakan?

Saya menggunakan Consolas. Ini beralih kembali setelah setiap restart PowerShell.

@ Borkason lokal apa yang Anda gunakan? en-US atau yang lainnya?

de-DE

Ini tiba-tiba bekerja sekarang. Butuh waktu 10 kali untuk menutup dan membuka PowerShell, tapi sekarang sepertinya melekat.

Itu rusak lagi. Jadi rupanya secara acak memutuskan untuk istirahat lagi, atau bekerja. 💢

Saya mengalaminya pada tahun 18334 - secara acak. Tidak terjadi lagi.

Oke, jadi perbedaannya adalah ketika saya menjalankan PowerShell melalui ALT-R, maka fontnya tetap sama. Ketika saya menjalankannya dari menu start, kemudian mengatur ulang font menjadi raster, bahkan ketika saya mengubahnya menjadi consolas di sesi sebelumnya yang saya jalankan dari menu start.

(Dan dengan start menu yang saya maksud adalah saya menekan tombol Windows pada keyboard dan kemudian mengetik 'PowerShell' dan tekan enter.)

@ SteveL-MSFT - Saya belum menerbitkan rilis dengan perbaikan font ke galeri PowerShell. Perbaikan tersedia di repo PSReadLine, jadi Anda dapat membuatnya sendiri atau mengambil build dari AppVeyor.

@Borkason - Jika Anda menggunakan Consolas maka saya pikir Anda seharusnya tidak melihat bug font.

Tetap sulit untuk menyetel default konsol karena kompatibilitas ke belakang. Default dapat diatur di registri (per aplikasi konsol) atau di pintasan yang digunakan untuk memulai aplikasi konsol. Saya tahu tim konsol ingin menyelesaikan masalah itu, tetapi tampaknya ini masalah yang sulit.

Jika Anda menggunakan Consolas maka saya pikir Anda seharusnya tidak melihat bug font.

Kemudian bug ini tidak teratasi, karena saya menggunakan Consolas dan pintasannya juga.

grafik
grafik

Tetap sulit untuk menyetel default konsol karena kompatibilitas ke belakang.

Kemudian Microsoft harus menyediakan skrip / alat FixIt bagi mereka yang hanya ingin konsol mereka berfungsi kembali, terlepas dari kompatibilitas ke belakang ...

Saya tahu tim konsol ingin menyelesaikan masalah itu, tetapi tampaknya ini masalah yang sulit.

Tampaknya. Dan obvisouly juga sangat sulit untuk menempatkan PowerShell setengah perbaikan ke 1809, belum lagi 1903 ...

😠

Saya baru saja memperbarui ke 18342 dan masalah tampaknya telah diperbaiki (18334 masih mengatur ulang ke font raster setiap kali).

Saya masih setuju bahwa perbaikan harus di-backport ke 1809.

EDIT: Masalah kesalahan konfigurasi saat pemutakhiran (lihat https://github.com/Microsoft/console/issues/280#issuecomment-474917761). Bug masih belum diperbaiki.

Saya baru saja melakukan penginstalan baru 20H1. Masalah masih ada. 🤣 Ini lelucon, kan?

Ini dapat diperbaiki dengan menginstal alat 1809 windows 10 Rsat.
Anda tidak dapat menginstal RSAT di komputer yang menjalankan Windows edisi Home atau Standard.
Anda dapat menginstal RSAT hanya pada edisi Windows 10 Professional atau Enterprise.

Metode 1 - Menggunakan Tambahkan Fitur, Instal Alat RSAT di Windows 10 versi 1809

Untuk menginstal RSAT Tools pada Windows 10 versi 1809, klik Start. Klik Pengaturan dan dari halaman pengaturan, klik Aplikasi.
Di panel kanan, di bawah Aplikasi & fitur, klik Kelola fitur opsional.
Sekarang klik + Tambahkan fitur. Tunggu daftar fitur yang akan diisi.
Gulir ke bawah hingga Anda melihat fitur RSAT.
Sekarang pilih salah satu fitur RSAT yang ingin Anda instal. Dalam kasus ini, saya memilih RSAT: fitur Alat Manajemen Kebijakan Grup.
Klik Pasang.
Klik ikon kembali dan tunggu hingga fitur diinstal.
Sekarang Anda harus menemukan Alat Manajemen Kebijakan Grup di bawah Mulai> Alat Administratif Windows.

bekerja ditempatkan .... Instal Alat RSAT pada Windows 10 versi 1809 dan yang lebih baru
Oleh Prajwal Desai Terakhir diperbarui Jan 31, 2019

Semoga ini membantu....

@RobRoberson Anda benar-benar mengerti apa yang Anda katakan, bukan?

Saya memiliki masalah yang sama di windows 1809 17763.316.
zh_Hans_CN dengan opsi UTF-8 diaktifkan.

Akankah versi pratinjau menyelesaikan masalah?

Akankah versi pratinjau menyelesaikan masalah?

Tidak.

Saya menarik kembali apa yang saya katakan di https://github.com/Microsoft/console/issues/280#issuecomment -465837677. Apa yang sebenarnya terjadi adalah semua pengaturan bahasa saya diatur ulang, yang mematikan codepage 65001. Saya baru menyadari bahwa hari ini, menyalakannya kembali, dan ... halo font raster.

@ SteveL-MSFT , komentar Anda ini tampaknya tidak benar dengan jumlah orang yang masih mengatakan bahwa masalah ini belum terselesaikan, bahkan pada versi Insider terbaru (saya pada tahun 18361 sekarang, misalnya).

Akan sangat senang memperbaiki ini. Sangat menyukai Consolas untuk pengembangan di bawah Windows.

Menggunakan rilis internal Microsoft 1903 dapat mengonfirmasi bug ini masih ada untuk Consolas dan UFT8. Font Konsol Lucida berfungsi dan akan menjadi solusi saya

Kami sedang mengerjakan pembaruan baru untuk PSReadLine, lalu kami akan melihat tentang memasukkannya ke Windows

Pada pwsh 6.2.0, masalah ini sepertinya telah diselesaikan, tetapi muncul kembali setelah saya menggunakan msbuild 2017 untuk membangun apa pun (versi 2015 baik-baik saja). Saya tidak yakin di mana tepatnya ini terjadi karena ini dari node-gyp , tetapi jika modul asli perlu dibangun (ulang), konsol saya akan kembali ke font raster.

Untungnya, saya tidak lagi harus mengatur ulang font setiap kali saya membuka terminal, hanya saat menjalankan node-gyp.

PSReadLine 2.0.0-beta4 diterbitkan yang seharusnya mengatasi banyak masalah (meskipun ada beberapa yang baru). https://www.powershellgallery.com/packages/PSReadLine/2.0.0-beta4

@ SteveL-MSFT 2.0.0-beta4 tidak memperbaiki bug ini.

Saya menggunakan terminal CMD biasa dengan git's bash.exe + phpunit = masalah yang sama. Itu muncul setelah beberapa detik skrip mulai bekerja.
Tidak yakin alasan di PowerShell ...

@ SteveL-MSFT 2.0.0-beta4 juga tidak memperbaiki bug untuk saya.

@sebgod Terima kasih atas tipnya, saya telah beralih dari Consolas 16 ke Lucida Console 14, ini hampir sama di mata saya.

Saya akan meminta seseorang untuk memeriksanya lagi

@ SteveL-MSFT Untuk mereplikasi ini, buka prompt perintah, setel font Anda ke Consolas,
lalu jalankan cmd /c chcp 65001 >NUL && powershell

Oke, saya rasa saya telah mengidentifikasi masalah sebenarnya dan tidak ada hubungannya dengan PSReadLine. Ada pemeriksaan di Windows PowerShell untuk melihat apakah halaman kode didukung oleh font Consolas. Daftarnya ada di sini . UTF-8 65001 tidak ada dalam daftar itu, jadi setiap kali Windows PowerShell mengidentifikasi halaman kode yang tidak didukung oleh Consolas, itu akan mengubah font menjadi Terminal . PowerShell Core 6.x tidak memiliki kode ini lagi sehingga Anda tidak melihat perilaku ini. Saya ragu-ragu untuk mengubah kode ini karena dapat merusak sesuatu yang lain. Untuk catatan saya sendiri, ini ada di ConsoleControl.cs baris 2648.

Oke, saya rasa saya telah mengidentifikasi masalah sebenarnya dan tidak ada hubungannya dengan PSReadLine. Ada pemeriksaan di Windows PowerShell untuk melihat apakah halaman kode didukung oleh font Consolas. Daftarnya ada di sini . UTF-8 65001 tidak ada dalam daftar itu, jadi setiap kali Windows PowerShell mengidentifikasi halaman kode yang tidak didukung oleh Consolas, itu akan mengubah font menjadi Terminal . PowerShell Core 6.x tidak memiliki kode ini lagi sehingga Anda tidak melihat perilaku ini. Saya ragu-ragu untuk mengubah kode ini karena dapat merusak sesuatu yang lain. Untuk catatan saya sendiri, ini ada di ConsoleControl.cs baris 2648.

Tidak yakin bagaimana ini bisa merusak sesuatu, karena UTF-8 tidak didukung sebelum versi Windows 10 terbaru.

@sebgod merusak sesuatu di sini berarti rendering yang salah karena saya yakin Consolas tidak memiliki semua mesin terbang yang dibutuhkan oleh UTF-8

@ SteveL-MSFT Lucida Console, Courier New dan semua fonta lainnya yang tersedia yang tidak terpengaruh oleh masalah ini meskipun mereka juga tidak mendukung codepage 65001. Secara kebetulan, Consolas bahkan mendukung lebih banyak halaman kode daripada Konsol Lucida. Jadi mengapa ini terjadi hanya dengan Consolas?

Tetapi secara umum, harus menjadi keputusan pengguna font apa yang digunakan untuk tampilan. Jika mesin terbang tidak ada, mereka akan ditampilkan sebagai dan pengguna dapat membuat keputusan untuk mengubah fonta.

@Borkason Menurut saya ini adalah masalah yang sangat jelas dari sudut pandang penutur asli bahasa Inggris, tetapi tidak diragukan lagi ada ketakutan akan menyebabkan masalah bagi pengguna internasional yang tidak dapat kami perkirakan.

Sebagai contoh, ketika @bitcrazed (anggota lain dari tim Terminal Microsoft) memperkenalkan PR ke cURL yang akan mengimplementasikan dukungan Windows VT https://github.com/curl/curl/pull/3011 (yang melibatkan pengubahan halaman kode ke 65001), itu akhirnya menyebabkan masalah bagi pengguna internasional: https://github.com/curl/curl/issues/3211

Ini memerlukan patch yang menulis UTF-8 di halaman kode saat ini menggunakan API string lebar sebagai gantinya: https://github.com/mattn/curl/commit/1d394188c5ecd7fb31e21f17a907aa1e7f525eb9

Tidak mengherankan saya bahwa tim Terminal Microsoft ingin melakukan pendekatan ini dengan sangat hati-hati setelah itu.

@sebgod merusak sesuatu di sini berarti rendering yang salah karena saya yakin Consolas tidak memiliki semua mesin terbang yang dibutuhkan oleh UTF-8

Oke, tidak ada satu font pun yang disediakan oleh Windows yang mencakup semua Glyph yang ditentukan dalam UTF-8. Cmd.exe mengandalkan teknologi yang disebut penautan font untuk memberikan rendering untuk semua mesin terbang.
Sebelum memasukkan pengaturan UTF-8 sebagai halaman kode sistem, seseorang harus menggunakan chcp 65001 secara manual, tetapi itu bekerja dengan baik. Bit penautan font harus dilakukan secara manual di registri untuk membuatnya berfungsi dalam hal apa pun.

@ImportTaste Saya tidak berpikir itu ada hubungannya dengan itu. Pengganti hanya berlaku jika Consolas digunakan. Jika ada font lain yang digunakan seperti Konsol Lucida atau Courier New, maka ini tidak terjadi. Setidaknya Lucida Consolas memiliki dukungan halaman kode yang sama dengan Consolas, jadi sulit untuk memahami mengapa hal itu dilakukan dengan cara ini. Jika akan ada masalah untuk pengguna internasional (dan omong-omong, saya bukan penutur asli bahasa Inggris seperti yang Anda asumsikan) itu masih akan mempengaruhi semua pengguna yang tidak menggunakan Consolas.

Menurut saya, fallback seharusnya tidak ada di tempat pertama (lihat PWSH 6 + 7) atau diimplementasikan dengan ceroboh (mengapa hanya Consolas?).

@ SteveL-MSFT Dan saya yakin memperbaikinya tidak berisiko sama sekali, karena bug tersebut diperkenalkan hanya dengan Windows versi 1809 dan tampaknya itu adalah perubahan yang tidak berdokumen alias tidak ada yang tahu mengapa secara khusus itu diubah.

@ Borkason Seperti yang saya katakan, itu adalah contoh yang berhubungan dari sesuatu yang tidak terduga terjadi.

Saya terkejut mendengar itu seharusnya hanya perubahan 1809, saya pernah mengalami masalah dengan font konsol yang mengubah dirinya menjadi raster di masa lalu.

Itu hanya terdeteksi pada 1809 karena font default untuk konsol adalah Consolas. Sebelumnya, saya yakin itu Konsol Lucida? Dan kodenya bekerja dengan cara yang sama untuk font itu. Pemahaman saya tentang kode itu (yang telah ada sejak lama dan sebelum tim saya di Tim PowerShell) adalah bahwa di sumber Windows, kami hanya memiliki satu pintasan yang digunakan untuk PowerShell dan pintasan itu menentukan font default. Jadi ketika font default diubah, pengguna Asia Timur mengeluh karena mesin terbang mereka tidak dirender karena font tersebut tidak mendukungnya. Jadi kode ini mendeteksi bahwa font dan lokal tidak kompatibel dan beralih ke font yang akan dirender.

Saya ragu untuk membuat perubahan apa pun di Windows PowerShell karena perubahan yang tampaknya kecil seperti ini menyebabkan regresi yang tidak terduga.

@sebgod & all: Beberapa hal di sini:

Klarifikasi

  1. Tidak ada satu font pun pada platform apa pun yang menyertakan setiap mesin terbang untuk setiap titik kode yang dapat direpresentasikan dalam UTF-8.
  2. Cmd.exe tidak tahu apa-apa tentang font - Cmd.exe adalah shell
  3. Console (ConHost.exe) menyediakan UX baris perintah 'mirip terminal' tradisional di Windows
  4. Mesin rendering teks konsol saat ini tidak mendukung font-fallback dan tidak dapat membuat sebagian besar emoji - coba dan Anda akan melihat karakter yang tidak dapat ditampilkan (tanda tanya di kotak)

Terminal & Konsol

Terminal Windows adalah Terminal UX generasi baru kami. Ini berbagi beberapa komponen umum dengan In-box Console, ditambah itu menambahkan beberapa fitur baru termasuk penyangga teks dan penyaji teks yang dapat / akan menyimpan dan menampilkan hampir semua mesin terbang Unicode.

Komponen ini, pada akhirnya, akan diserap kembali ke dalam Konsol dalam kotak, tetapi tidak sampai setelah kami merilis Terminal v1.0 dan mereka memiliki waktu untuk diuji dengan baik dalam penggunaan dunia nyata.

PowerShell

Seperti yang ditunjukkan oleh @ SteveL-MSFT, PowerShell Core (PSCore) tidak menunjukkan masalah ini dan karena PSCore adalah masa depan PowerShell, kami mendorong Anda untuk menggunakannya jika memungkinkan.

Mengubah perilaku PowerShell untuk Windows (PS) berpotensi sulit karena seperti yang kita ketahui dari mencoba memperbaiki / mengubah perilaku Cmd, bahkan perubahan kecil yang tampaknya tidak berbahaya dapat mengakibatkan kerusakan yang mengejutkan di dunia nyata.

Ini mengatakan, saya akan berdiskusi dengan Steve & Team dan kami akan membahas apakah PS dapat dimodifikasi untuk memilih font non-raster (misalnya Consolas / Lucida / dll.) Untuk halaman kode 65001.

@sebgod & all: Beberapa hal di sini:

Klarifikasi

  1. Tidak ada satu font pun pada platform apa pun yang menyertakan setiap mesin terbang untuk setiap titik kode yang dapat direpresentasikan dalam UTF-8.

Ya, itulah mengapa saya mengatakan "tidak ada satu pun font yang disediakan oleh Windows yang mencakup semua Glyph yang ditentukan dalam UTF-8"

  1. Cmd.exe tidak tahu apa-apa tentang font - Cmd.exe adalah shell

Ya maaf karena malas Saya hanya bermaksud untuk merujuk pada apa yang terjadi jika Anda mengetik "cmd.exe" di kotak pencarian Windows

  1. Console (ConHost.exe) menyediakan UX baris perintah 'mirip terminal' tradisional di Windows
  2. Mesin rendering teks konsol saat ini tidak mendukung font-fallback dan tidak dapat membuat sebagian besar emoji - coba dan Anda akan melihat karakter yang tidak dapat ditampilkan (tanda tanya di kotak)

Seperti yang saya pahami, mesin saat ini tidak dapat membuat karakter apa pun dari pesawat Unicode yang lebih tinggi, yang mencakup (sebagian besar) karakter emoji.

Sekarang saya harus pilih-pilih, saya berbicara tentang Menghubungkan Font, yang didukung atau setidaknya berfungsi:

Dengan menambahkan nilai Lucida Console bawah kunci HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
dengan tipe REG_MULTI_SZ dan data berikut (atau serupa, harus berupa font monospace):

MSGOTHIC.TTC,MS UI Gothic
MINGLIU.TTC,PMingLiU
SIMSUN.TTC,SimSun
GULIM.TTC,Gulim
YUGOTHM.TTC,Yu Gothic UI
MSJH.TTC,Microsoft JhengHei UI
MSYH.TTC,Microsoft YaHei UI
MALGUN.TTF,Malgun Gothic
SEGUISYM.TTF,Segoe UI Symbol

Dimungkinkan untuk menampilkan sebagian besar mesin terbang dasar Unicode saat menggunakan chcp 65001 atau sejak 1803 dengan menyetel halaman kode sistem ke UTF-8 (beta tetapi berfungsi sejauh ini), yang secara pribadi saya lebih suka menggunakan halaman kode khusus untuk masing-masing bahasa saat saya menggunakan berbagai bahasa.

image

Sekarang saya lebih suka menggunakan Consolas yang tidak berfungsi sejak 1903 karena beralih ke font raster.

Terminal & Konsol

Terminal Windows adalah Terminal UX generasi baru kami. Ini berbagi beberapa komponen umum dengan In-box Console, ditambah itu menambahkan beberapa fitur baru termasuk penyangga teks dan penyaji teks yang dapat / akan menyimpan dan menampilkan hampir semua mesin terbang Unicode.

Komponen ini, pada akhirnya, akan diserap kembali ke dalam Konsol dalam kotak, tetapi tidak sampai setelah kami merilis Terminal v1.0 dan mereka memiliki waktu untuk diuji dengan baik dalam penggunaan dunia nyata.

Ya, saya sudah menggunakan Terminal UX baru dan tentu saja sangat menyenangkan untuk digunakan, tetapi saat ini tidak memungkinkan untuk memasukkan karakter bahasa Mandarin (saya harap ini akan diperbaiki pada akhirnya)

PowerShell

Seperti yang ditunjukkan oleh @ SteveL-MSFT, PowerShell Core (PSCore) tidak menunjukkan masalah ini dan karena PSCore adalah masa depan PowerShell, kami mendorong Anda untuk menggunakannya jika memungkinkan.

Mengubah perilaku PowerShell untuk Windows (PS) berpotensi sulit karena seperti yang kita ketahui dari mencoba memperbaiki / mengubah perilaku Cmd, bahkan perubahan kecil yang tampaknya tidak berbahaya dapat mengakibatkan kerusakan yang mengejutkan di dunia nyata.

Ini mengatakan, saya akan berdiskusi dengan Steve & Team dan kami akan membahas apakah PS dapat dimodifikasi untuk memilih font non-raster (misalnya Consolas / Lucida / dll.) Untuk halaman kode 65001.

Jika perubahan bisa merusak sesuatu dan kita bahkan tidak tahu apa sebenarnya, jadi tidak ada yang bisa diubah di terminal lagi?

Saya "memperbaiki" masalah dengan menggunakan Powershell Core. Saya pertama kali memperhatikan bahwa tidak ada pengaturan Powershell yang melakukan apa pun (tetapi itu mengubah pengaturan pada cmd.exe). Setelah beberapa jam mencoba berbagai hal, saya berhenti pada Powershell Core dan segera setelah saya mendownloadnya, pengaturan yang saya simpan sebelumnya berlaku segera setelah saya membuka pratinjau inti Powershell.

Mendapat masalah yang sama saat menjalankan beberapa perintah (termasuk scoop) dari FAR manager - efek ini hanya merusak bagaimana FAR ditampilkan. Hanya terjadi dengan font Consolas dan opsi beta diaktifkan untuk menggunakan halaman kode UTF-8 (65001) di konsol. Lokal saya adalah Rusia.

Sebagai pengguna akhir - Sangat mengganggu ketika program mencoba untuk menjadi lebih pintar dari saya. Saya dapat hidup dengan tanda tanya daripada beberapa simbol UTF-8, tetapi font ini hanya mengubah tampilan program yang tidak akan terpengaruh sama sekali, seperti palungan FAR. Ini menyakitkan.

Untuk saat ini saya harus kembali ke lokal Rusia untuk konsol (kembali dari UTF-8), namun batasan ini bekerja dengan file yang diberi nama menggunakan simbol lokal lain. Saya harap Anda dapat menghapus perawatan khusus Consolas itu.

Saya memiliki masalah yang sama tetapi hanya jika saya mencoba menggunakan consolas. mungkin @ SteveL-MSFT benar.
Saya mencoba Konsol Lucida dan ini berfungsi dengan baik. Jadi saya kira Consolas kehilangan beberapa mesin terbang untuk utf-8 (codepage saya) ?!
Powershell Core 7 berfungsi dengan baik dengan semua font.

Luar biasa, saya membeli laptop Windows pada tahun 2020 (xps15) dan saya memiliki masalah yang sama. Mungkin ratusan pembaruan Windows nanti, dan masalah tetap ada. Kalau PS Core masa depan di 2019, kenapa tidak dipasang di tahun 2020? Inti PS dapat menjadi default, dan mungkin PS lama dapat diinstal sebagai cadangan jika ada yang membutuhkan masalah kompatibilitas. Bagaimanapun, saya menginstal Terminal Windows dan mari kita coba.

@marcelomgarcia FWIW, alasan PowerShell 7 tidak diinstal di Windows secara default adalah karena masalah dukungan dan kewajiban. Windows dan PowerShell 7 memiliki dukungan yang berbeda dan sejauh yang saya tahu, para pengacara belum menemukan cara untuk melakukannya. Untuk saat ini. Saya yakin semua orang akan senang melihat PowerShell 7 dikirimkan di dalam Windows 10 atau Windows Server.

Rember: Windows PowerShell adalah komponen inti Windows 10 dan penginstal default menambahkannya ke yang diinstal di laptop Anda. Ini adalah FWIW komponen yang didukung penuh. JIKA Anda menginginkan PowerShell 7, bagaimanapun, itu adalah proses penginstalan yang terpisah dan tidak terintegrasi.

Bahasa apa komputer kamu

Terima kasih atas penjelasannya @doctordns. Ini hanya masalah yang membuat frustasi, dan untuk seseorang di luar tampaknya menjadi masalah yang "sederhana". Saya menginstal PowerShell 7.

Saya menggunakan bahasa Inggris AS.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat