Эхо% path% в отдельных строках?

84

Могу ли я повторить% path% с помощью командной строки Windows и получить результирующие пути в отдельных строках? Что-то вроде этого, но для windows:

echo $path | tr ':' '\n'

Могу ли я сделать это с помощью vanilla cmd или мне нужны сценарии powershell или js?

Пример вывода echo% path%:

C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;

Желаемый результат:

C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;
C:\Program Files\Microsoft SQL Server\90\Tools\binn\;
C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;
Carl R
источник

Ответы:

140

Try:

 ($env:Path).Replace(';',"`n")

or

$env:path.split(";")
Ekkehard.Horner
источник
What is wrong with the following? powershell -Command ($env:Path).Replace(';',"`n")
Carl R
4
PowerShell has -replace operator: $env:Path -replace ';',"n"`
stej
5
Will fail with quoted paths that contain semicolons.
Joey
@Joey: What should I do instead then?
Eric
1
@stej Use triple backticks: $env:Path -replace ';',"`n"
wjandrea
45

Fewer keystrokes using either the split operator or method

$env:Path -split ';'
$env:Path.split(';')
Doug Finke
источник
3
Will fail with quoted paths that contain semicolons.
Joey
5
This looks nice with a sort: ($env:Path).Split(";") | Sort-Object
jrsconfitto
9

this works for me (in a cmd window):

powershell -Command ($env:Path).split(';')
leonardo4it
источник