设为首页 收藏本站
查看: 816|回复: 0

Powershell环境变量

[复制链接]

尚未签到

发表于 2018-9-2 10:56:27 | 显示全部楼层 |阅读模式
  传统的控制台一般没有象Powershell这么高级的变量系统。它们都是依赖于机器本身的环境变量,进行操作 。环境变量对于powershell显得很重要,因为它涵盖了许多操作系统的细节信息。此外,powershell中的变量只存在于powershell 内部的会话中,一旦powershell关闭,这些变量就会自生自灭。但是如果环境变量被更新了,它会继续保存在操作系统中,即使其它程序也可以调用它。
读取特殊的环境变量
  通过环境变量读取Windows操作系统的安装路径,和默认应用程序的安装路径。
PS> $env:windir  
C:\Windows
  
PS> $env:ProgramFiles
  
C:\Program Files
  通过$env:,这就提示powershell忽略基本的variable:驱动器,而是去环境变量env:驱动器中寻找变量。为了和其它变量保持一致,powershell环境变量也可以象其它变量那样使用。比如你可以把它插入到文本中。
PS> "My computer name $env:COMPUTERNAME"  
My computer name MYHome-test-01

查找环境变量
  Powershell把所有环境变量的记录保存在env: 虚拟驱动中,因此可以列出所有环境变量 。一旦查出环境变量的名字就可以使用$env:name 访问了。
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:虚拟驱动器即可
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,
PS> del env:windir  
PS> $env:windir
  
PS>
  可以更新环境变量$env:OS 为linux redhat。
PS> $env:OS  
Windows_NT
  
PS>  $env:OS="Redhat Linux"
  
PS> $env:OS
  
Redhat Linux
  这样直接操作环境变量,会不会不安全?事实上很安全,因为$env:中的环境变量只是机器环境变量的一个副本,即使你更改了它,下一次重新打开时,又会恢复如初。(.NET方法更新环境变量除外)
  我们可以将受信任的文件夹列表追加到环境变量的末尾,这样就可以直接通过相对路径执行这些文件下的文件或者脚本,甚至省略扩展名都可以。
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仍然存在
PS> [environment]::SetEnvironmentvariable("Path", ";c:\powershellscript", "User")  
PS> [environment]::GetEnvironmentvariable("Path", "User")
  
;c:\powershellscript
  
  本文链接: http://www.pstips.net/powershell-environment-variables.html



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-561465-1-1.html 上篇帖子: 【Powershell】【性能计数器】基础信息的获取 下篇帖子: 【Powershell】【 数组】脚本示例一则
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表