Powershell脚本打印出系统路径中的每个值

发布于 2024-11-30 14:20:47 字数 700 浏览 0 评论 0原文

我发现我可以在 PowerShell 中使用 $env:Path 来查看当前的系统路径。然而,一切都在一条线上运行。有没有办法将 $env:Path 的输出通过管道传输到另一个命令,该命令将单独打印每个路径值(即,为以分号分隔的所有内容打印在新行上)?

目前它打印如下内容:

C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;

我宁愿有这样的内容:

C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It

I found that I can use $env:Path within PowerShell to see my current system path. However, everything runs together on one line. Is there a way to pipe the output of $env:Path to another command that will print each path value separately (i.e. printing on a new line for everything that is delimited by a semi-colon)?

Currently it prints something like this:

C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;C:\Some Test Directory\With\Some\Files\In\It;

I'd rather have something like this:

C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It
C:\Some Test Directory\With\Some\Files\In\It

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晨光如昨 2024-12-07 14:20:47
$env:Path.split(";")

PS C:\Users\user> $env:Path.split(";")
C:\Program Files (x86)\Haskell\bin
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\lib\extralibs\bin
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\Windows\system32
...

对我有用。

$env:Path.split(";")

PS C:\Users\user> $env:Path.split(";")
C:\Program Files (x86)\Haskell\bin
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\lib\extralibs\bin
C:\Program Files (x86)\Haskell Platform\2011.2.0.1\bin
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\Windows\system32
...

Works for me.

单身狗的梦 2024-12-07 14:20:47

在 Unix 上,您可以简单地完成此操作。

echo $path | tr ";" "\n"

您可以使用以下任一方法在 Windows 上模拟此工作流程:

安装

gnu coreutils 并将 bin 目录添加到系统路径

  1. 将命令行工具的文件夹添加到系统路径。例如,“C:\Program Files (x86)\bin\”

  2. 下载 tr 作为 移植自的 powertools 的一部分UNIX。将它们提取到其他地方。 (例如,“C:\Program Files (x86)\bin\perl\”

  3. 将包含这些内容的名为 tr.bat 的 bat 文件添加到您的 bin 中。文件夹:

@回声关闭

perl“C:\Program Files (x86)\bin\perl\tr”%*

(路径应与提取 perl 工具的位置匹配)


结果

C:\>echo %path% | tr ";" "\n"
C:\Program Files (x86)\bin\
C:\Perl\site\bin
C:\Perl\bin
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\Python27
...

On Unix you can do this with simply

echo $path | tr ";" "\n"

You can emulate this workflow on Windows with either of the following:

EITHER

Install gnu coreutils and add the bin directory to your system path

OR

  1. Add a folder for your command line tools to your system path. E.g, "C:\Program Files (x86)\bin\"

  2. Download tr as part of the powertools ported from unix. Extract them somewhere else. (E.g, "C:\Program Files (x86)\bin\perl\"

  3. Add a bat file called tr.bat with these contents to your bin folder:

@echo off

perl "C:\Program Files (x86)\bin\perl\tr" %*

(Path should match where you extracted the perl tools)


Result

C:\>echo %path% | tr ";" "\n"
C:\Program Files (x86)\bin\
C:\Perl\site\bin
C:\Perl\bin
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\Python27
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文