925_使用PowerShell查看以及设置环境变量

       全部学习汇总: GitHub - GreyZhang/PowerShell: Learn some PowerShell, just for fun!

       之前刷科技文章的时候看到过一个linux环境的搭建,里面提到了PowerShell。是的,我看到的是Linux的环境搭建。

       当时,文章下面有一些评论讨论。很多观点是,在linux环境下居然还去用PowerShell,找虐吗?有bash什么的不是更好?但是,我看到了一个高赞的回答,他只是给了一个类比。Bash类似于C,而PowerShell则类似于Python。其实,对这两套工具,我了解甚少,但是C和Python还是多少了解一些的。如果真如这个类比所介绍的这样,那么PowerShell自然还是值得折腾一下的。

       我的学习方案一向还是走量,追寻量变到质变的自然转换。直接一点点来,先从使用的小case入手。这一次,试一下环境变量的查看与设置。

       查看环境变量需要输入:dir env:

       其实,第一个命令测试我就好几次不成功,主要的原因是最后的冒号我给漏掉了。我以为这个是一个可有可无的东西,实则不然。

       这是查看的效果,从结果看,有一些信息比较长的会被省略掉。这个查看的结果可以进一步进行过滤,比如说过滤里面带有data的环境变量。

       dir env:*data*

       在查询筛选的时候,PowerShell是不区分大小写的。如果要查看指定的明确的环境变量,可以去掉通配符。比如,查看Path:

       dir env:Path

       从这个结果看,依然存在部分信息被省略的问题。如果要查看具体的信息如何处理?这里就涉及到了另一个操作,查询环境变量的具体数值。具体的操作如下:

       $env:Path -split “;”

       结合结果,很容易知道上面命令的含义。-split的指示符是用来实现字符串的分割的,而后面的分号则是分隔符。而环境变量数值的获取,有一点直接获取一个对象的属性的意思。如果不做分割,那么应该就是之前我用过的cmd的set的类似效果:

       这里的确是有一点体验到了类似python的面向对象的感觉,接下来的操作更加有这样的感觉。接下来,创建增加一个新的环境变量。

       $env:test_env_var = “test_env_var_value”

       查看的方式与上面一样。

       如果要移除这个环境变量,有2种方法,第一种是执行如下命令:

       rm env:test_env_var

       其中,rm是Remove-Item的一个绑定名称缩写,这个绑定是内置的。这里需要注意的是,前面的$符号是没有的。

       之后,获取这样的信息是获取不到的。为了对比效果,增加了一个aaa的获取。第二种删除的方法是直接重启PowerShell,因为这个修改是临时的,只在当前的对话中有效。如何可以设置一个永久有效的,后面再梳理。

       除了上面的新增,更加常用的处理其实就一个Path,这种环境变量可能会在上面不断增加新的信息。那么,如何在原来的基础上增加新的信息呢?

       $env:path = $env:path + ";D:\test"

       这样,可以实现在原有的环境变量中追加。其实,是做了一个重新组合然后覆盖。而中间的过程我也在上面的测试中打出来了。

       接下来,看一下如何查看用户的环境变量以及整个电脑全部用户公用的环境变量。

       [environment]::GetEnvironmentVariable("xyz", "User")

       如果User,那么查找的是用户的环境变量。如果是Machine,可以查看整个机器上有效的环境变量。还有一个Process可以查看当前的对话。

       如果要永久性的设置或者增加环境变量,跟上面的操作正好是一个相反的过程。新增的一个例子如下:

       [Environment]::SetEnvironmentVariable("xx", "something", "User")

       这个不去做实际操作了,直接做一个Path修改的操作:

       [Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";D:\test", "User")

       具体的效果如下:

       直接到系统的属性设置里面看一下环境变量的状态:

       新的信息已经被加进来了。加了两次是因为我在Process中已经加了一次,因此取值计算又加了第二个。这个功能是很有用的,一直以来我想在脚本中增加环境变量修改这样的功能没有找到好用的方式,这个是可以的。

       有一点需要注意,如果是要设置整个机器的环境变量是需要管理员权限的。

       环境变量的删除性修改,其实也是一个设置,如果部分删除还是按照前面的路子处理出来合适的字符串。如果是要整个清空,那么需要用一个$null来覆盖。

       [Environment]::SetEnvironmentVariable("xyz", $null, "User")

       这个会影响到我自己的环境变量的设置,暂且不去做测试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值