返回列表 发帖

[原创教程] 用 PowerShell 快速查看 PATH 环境变量

原始链接:用 PowerShell 快速查看 PATH 环境变量
发表日期:2014-08-05


我们常常需要查看 `PATH` 环境变量里是否有我们需要的路径。通常的做法是:

1. 依次打开 系统属性 / 高级 / 环境变量。
2. 分别在“用户变量”和“系统变量”列表框中双击 PATH 条目。
3. 在“变量值”窄小的文本框中检视 PATH 变量的值。
4. 往往不得不把变量值复制粘贴到记事本中,再利用搜索功能来查找。

利用 PowerShell,可以告别以上笨拙的步骤:
PS > (type env:path) -split ';'COPY
这样就可以看到一个完美分割过的列表了。当然,利用 PowerShell 强大的查询功能,还可以进一步节省眼力。例如我们要查询所有包含“bin”的路径:
PS > (type env:path) -split ';' | sls bin
C:\PROGRAM FILES (X86)\JAVA\JDK1.7.0_45\JRE\BIN
C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X86
C:\PROGRAM FILES (X86)\INTEL\OPENCL SDK\2.0\BIN\X64
C:\PROGRAM FILES\MICROSOFT SQL SERVER\110\TOOLS\BINN\
D:\greensoft\UnxUtils\usr\local\wbin\
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
C:\Program Files\TortoiseGit\bin
C:\Chocolatey\bin
c:\Program Files\MongoDB 2.6 Standard\binCOPY
PowerShell 群:271143343

学习了,,原来ps里是用env显示变量。

TOP

本帖最后由 CrLf 于 2014-8-11 14:29 编辑

回复 2# Linuxer


   确切说是环境变量,ps 真正的变量是以 $varname 形式引用的
(type env:path) -split ';'COPY
也可以写成:
$env:path -split ';'COPY

TOP

回复 3# CrLf


    原来还可以$env表示。。哈哈。多谢。
顺便问下,bat中,怎么写代码可以实现
(type env:path) -split ';'COPY
这样的输出显示结果?
sed会写,但是用for写出来的总是不对。
@echo off
set path > path.txt
for /f "delims=; tokens=1,*" %%i in (path.txt) do echo %%i %%j
pauseCOPY
这个能显示,但是没有上边的那个分行效果。还有in (path.txt) 怎么不能直接用in (set path)代替呢,会提示系统找不到文件set。

TOP

回复 4# Linuxer


批是这样:
@echo off
%1 cmd /v /c %0 :
echo !path:;=^
!
pauseCOPY
与其 set path 不如直接用 path,for /f 中执行命令要写成 in ('path') do
1

评分人数

    • plp626: 有你这样的么, 好吧, 以后给公司写bat脚本就 ...PB + 10

TOP

回复 5# CrLf


多谢~~~效果出来了,执行结果:

就是不太懂代码的意思。。
不知道为啥我的path里有个单独的分号。

TOP

回复 6# Linuxer


写成这样更容易理解:
echo %path:;=&echo;%COPY
不过其实是不一样的实现方式

TOP

回复 7# CrLf


    嗯。。这就容易理解的多。 能看懂。

TOP

谢谢大神普及,学习了。

TOP

返回列表