Versuchen Sie es mit dem Kommando Show-Tree .
09:17 $ Show-Tree C:\Chocolatey\ -Depth 1 C:\Chocolatey\ |--bin \--lib
Die folgende Eingabe:
PS STG:\> Get-ChildItem | tree
Gibt mir
Folder PATH listing for volume Data Volume serial number is 6576-C540 D:. ÃÄÄÄAPK ÃÄÄÄAssets ³ ÃÄÄÄAnimations ³ ³ ÃÄÄÄCharacters ³ ³ ³ ÀÄÄÄinhabitant ³ ³ ÃÄÄÄEnvironment ³ ³ ÀÄÄÄProps ³ ÃÄÄÄMaterials ³ ³ ÃÄÄÄCharacters ³ ³ ³ ÀÄÄÄinhabitant ³ ³ ÃÄÄÄEnvironment ³ ³ ÃÄÄÄParticles ³ ³ ³ ÀÄÄÄasteroidParticle ³ ³ ÀÄÄÄProps ³ ÃÄÄÄMeshes ³ ³ ÃÄÄÄCharacters ³ ³ ³ ÀÄÄÄinhabitant ³ ³ ÃÄÄÄEnvironment ³ ³ ÀÄÄÄProps
...usw.
Als ich etwas erwartet hatte, das eher formatiert war:
├───APK ├───Assets └───Animations | └───Characters | | └───inhabitant | ├───Environment | └───Props └───Materials | └───Characters | | └───inhabitant | ├───Environment | └───Particles | | └───asteroidParticle | └───Props └───Meshes └───Characters | └───inhabitant ├───Environment └───Props
Was mache ich falsch?
Dies ist der Wert von $OutputEncoding
:
IsSingleByte : True BodyName : iso-8859-1 EncodingName : Western European (Windows) HeaderName : Windows-1252 WebName : Windows-1252 WindowsCodePage : 1252 IsBrowserDisplay : True IsBrowserSave : True IsMailNewsDisplay : True IsMailNewsSave : True EncoderFallback : System.Text.InternalEncoderBestFitFallback DecoderFallback : System.Text.InternalDecoderBestFitFallback IsReadOnly : True CodePage : 1252`
)`, but I am not able to repro OP's issue by setting the code page to `1252`
Rynant vor 10 Jahren
0
Versuchen Sie es mit dem Kommando Show-Tree .
09:17 $ Show-Tree C:\Chocolatey\ -Depth 1 C:\Chocolatey\ |--bin \--lib
Abhängig von der Version von PowerShell und dem Vorhandensein oder Nichtvorhandensein von Community-Erweiterungen können Sie am Ende tatsächlich C: \ Windows \ System32 \ tree.com aufrufen. Das Kauderwelsch ist darauf zurückzuführen, dass PowerShell nicht die richtige Codierung verwendet, um die erweiterten Zeichen anzuzeigen, die von tree.com standardmäßig verwendet werden. Sie können chcp.com verwenden, um die aktuelle Codepage-Einstellung des Befehlsprozessors anzuzeigen. Die übliche Standardeinstellung ist die Codepage 437. PowerShell verwendet standardmäßig die Codepage 1252. Es gibt verschiedene Optionen, um damit umzugehen, die gut funktionieren und sowohl wirkungslos als auch einfach sind.
tree | %{ [System.Text.Encoding]::GetEncoding('IBM437').GetString($OutputEncoding.GetBytes($_)) }
Führen Sie den Befehl in Powershell oder Powershell ISE aus?
Es besteht ein Unterschied.
Das bekomme ich in Powershell ISE:
PS C:\powershell> Get-ChildItem | tree Folder PATH listing Volume serial number is XXXX-XXXX C:. ÃÄÄÄFolder 1 ³ ÃÄÄÄSubfolder 1 ³ ÃÄÄÄSubfolder 2 ³ ÃÄÄÄSubfolder 3 ³ ÀÄÄÄSubfolder 4 ÃÄÄÄFolder 2 ³ ÃÄÄÄSubfolder 1 ³ ÃÄÄÄSubfolder 2 ³ ÃÄÄÄSubfolder 3 ³ ÀÄÄÄSubfolder 4 ÃÄÄÄFolder 3 ³ ÃÄÄÄSubfolder 1 ³ ÃÄÄÄSubfolder 2 ³ ÃÄÄÄSubfolder 3 ³ ÀÄÄÄSubfolder 4 ÀÄÄÄFolder 4 ÃÄÄÄSubfolder 1 ÃÄÄÄSubfolder 2 ÃÄÄÄSubfolder 3 ÀÄÄÄSubfolder 4 PS C:\powershell>
Das bekomme ich in Powershell:
PS C:\powershell> Get-childitem | tree Folder PATH listing Volume serial number is XXXX-XXXX C:. +---Folder 1 ¦ +---Subfolder 1 ¦ +---Subfolder 2 ¦ +---Subfolder 3 ¦ +---Subfolder 4 +---Folder 2 ¦ +---Subfolder 1 ¦ +---Subfolder 2 ¦ +---Subfolder 3 ¦ +---Subfolder 4 +---Folder 3 ¦ +---Subfolder 1 ¦ +---Subfolder 2 ¦ +---Subfolder 3 ¦ +---Subfolder 4 +---Folder 4 +---Subfolder 1 +---Subfolder 2 +---Subfolder 3 +---Subfolder 4 PS C:\powershell>