博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Powershell环境变量
阅读量:6858 次
发布时间:2019-06-26

本文共 2385 字,大约阅读时间需要 7 分钟。

传统的控制台一般没有象Powershell这么高级的变量系统。它们都是依赖于机器本身的环境变量,进行操作 。环境变量对于powershell显得很重要,因为它涵盖了许多操作系统的细节信息。此外,powershell中的变量只存在于powershell 内部的会话中,一旦powershell关闭,这些变量就会自生自灭。但是如果环境变量被更新了,它会继续保存在操作系统中,即使其它程序也可以调用它。

读取特殊的环境变量

通过环境变量读取Windows操作系统的安装路径,和默认应用程序的安装路径。

1
2
3
4
PS> 
$env:windir
C:\Windows
PS> 
$env:ProgramFiles
C:\Program Files

通过$env:,这就提示powershell忽略基本的variable:驱动器,而是去环境变量env:驱动器中寻找变量。为了和其它变量保持一致,powershell环境变量也可以象其它变量那样使用。比如你可以把它插入到文本中。

1
2
PS> 
"My computer name $env:COMPUTERNAME"
My computer name MYHome-test-01
查找环境变量

Powershell把所有环境变量的记录保存在env: 虚拟驱动中,因此可以列出所有环境变量 。一旦查出环境变量的名字就可以使用$env:name 访问了。

1
2
3
4
5
6
7
8
9
10
11
PS> ls env:
Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
APPDATA                        C:\User\sv-test\Home\AppData\Roaming
CommonProgramFiles             C:\Program Files\Common Files
COMPUTERNAME                   MYHome-test-01
ComSpec                        C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK               NO
HOMEDRIVE                      C:
HOMEPATH                       Users\v-test\Home
创建新的环境变量

创建新环境变量的方法和创建其它变量一样,只需要指定env:虚拟驱动器即可

1
2
3
4
5
6
7
8
PS> 
$env:TestVar1
=
"This is my environment variable"
PS> 
$env:TestVar2
=
"Hollow, environment variable"
PS> ls env:Test*
 
Name                           Value
----                           -----
TestVar1                       This is my environment variable
TestVar2                       Hollow, environment variable
删除和更新环境变量

在powershell删除和更新环境变量和常规变量一样。例如要删除环境变量中的 windir,

1
2
3
PS> del env:windir
PS> 
$env:windir
PS>

可以更新环境变量$env:OS 为linux redhat。

1
2
3
4
5
PS> 
$env:OS
Windows_NT
PS>  
$env:OS
=
"Redhat Linux"
PS> 
$env:OS
Redhat Linux

这样直接操作环境变量,会不会不安全?事实上很安全,因为$env:中的环境变量只是机器环境变量的一个副本,即使你更改了它,下一次重新打开时,又会恢复如初。(.NET方法更新环境变量除外)

我们可以将受信任的文件夹列表追加到环境变量的末尾,这样就可以直接通过相对路径执行这些文件下的文件或者脚本,甚至省略扩展名都可以。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PS> md .myscript
 
    
Directory:
 
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2011/11/29     18:20            myscript
 
PS> cd .myscript
PSmyscript> 
"write-host 'Hollow , Powershell'" 
> hollow.ps1
PSmyscript> .hollow.ps1
Hollow , Powershell
PSmyscript> cd ..
PS> 
$env:Path
+=
";C:PowerShellmyscript"
PS> hollow.ps1
Hollow , Powershell
PS> hollow
Hollow , Powershell
环境变量更新生效

上述对于环境变量的操作只会影响当前powershell会话,并没有更新在机器上。  

.NET方法[environment]::SetEnvironmentvariable操作可以立刻生效。  
下面的例子对当前用户设置环境变量,经测试,重新打开powershell仍然存在

1
2
3
PS> 
[environment]
::SetEnvironmentvariable(
"Path"
";c:\powershellscript"
"User"
)
PS> 
[environment]
::GetEnvironmentvariable(
"Path"
"User"
)
;c:\powershellscript

本文链接: 

本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1680095 ,如需转载请自行联系原作者

你可能感兴趣的文章
Linux环境下安装mysql并分配用户权限
查看>>
VR视频创作,想说爱你不容易
查看>>
笨办法学 Python · 续 练习 23:三叉搜索树
查看>>
可穿戴设备不能急于戴上“智能”的高帽子
查看>>
扒一扒政府的专用黑客组织ZooPark
查看>>
Ubuntu下Deb软件包相关安装与卸载
查看>>
互联网转型需要微服务架构
查看>>
Airbus Safran Launchers:选择西门子彻底改革产品生命周期流程
查看>>
文本数据的分分合合
查看>>
无损音乐知识收集2(转)
查看>>
vim 工具(一)
查看>>
MySQL常用命令
查看>>
zabbix snmp监控
查看>>
MySQL单实例重置密码的两种方法
查看>>
一段典型的PHP程序都包含那些内容呢?
查看>>
Windows Phone 7 数据绑定的简单介绍
查看>>
合并下载的Solaris镜像为DVD文件的方法
查看>>
shell编程入门步步高(一、shell简介)
查看>>
一个简单的HQL优化
查看>>
从股价说起 百神大战凸现百度与腾讯阿里差距
查看>>