Windows Powershell 环境变量_PowerShell

传统的控制台一般没有象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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, powershell
环境变量
powershell 环境变量、windows 环境变量、windows java环境变量、windows环境变量设置、查看环境变量 windows,以便于您获取更多的相关知识。

时间: 2025-01-23 23:30:34

Windows Powershell 环境变量_PowerShell的相关文章

Windows Powershell 定义变量_PowerShell

变量可以临时保存数据,因此可以把数据保存在变量中,以便进一步操作. #定义变量 $a=10 $b=4 #计算变量 $result=$a*$b $msg="保存文本" #输出变量 $result $msg 40 保存文本 powershell 不需要显示地去声明,可以自动创建变量,只须记住变量的前缀为$. 创建好了变量后,可以通过变量名输出变量,也可以把变量名存在字符串中.但是有个例外单引号中的字符串不会识别和处理变量名. 选择变量名 在powershell中变量名均是以美元符"

Windows Powershell 自动化变量_PowerShell

Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$home 配置信息:例如powershell控制台的大小,颜色,背景等. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等. PS> $HOME C:\Users\test PS> $currentProcessID=$pid PS> $currentProcessID 5356 PS> Get-Process -Id $pid H

Windows Powershell使用管道_PowerShell

管道并不是什么新事物,以前的Cmd控制台也有重定向的命令,例如Dir | More可以将结果分屏显示. 传统的Cmd管道是基于文本的,但是Powershell是基于对象. PS> ls | Sort-Object -Descending Name | Select-Object Name,Length,LastWriteTime | ConvertTo-Html | Out-File ls.html PS> Get-Content .ls.html Name Length LastWriteT

Windows下环境变量新玩法

window|变量 近日发现朋友在玩电脑时,在"运行"中输入QQ.exe,QQ便运行了.这使我感到很诧异,以前我也曾试过在"运行"中输入QQ.exe过,却不能运行.这是为什么呢?最后在朋友的点拨下我终于得到了答案.下面与大家分享. 不知大家是否注意到这样一个地方:在"系统属性/高级/环境变量"下的系统变量.我们在"系统变量"下双击变量path.系统默认的只有%SystemRoot%\system32和%SystemRoot%这

windows下环境变量的设置

SET [variable=[string]] variable 指定环境变量名称. string 指定要指派给变量的一系列字符.********************************仅键入 SET 而不加参数,可以显示当前的环境变量.********************************如果命令扩展名被启用,SET 会如下改变:可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配SET 命令已使用的名称的所有变量的值.例如: SET P会显示所有以字母 P 打头的变

Windows Powershell 创建数组_PowerShell

在Powershell中创建数组可以使用逗号. PS C:Powershell> $nums=2,0,1,2 PS C:Powershell> $nums 2 0 1 2 对于连续的数字数组可以使用一个更快捷的方法 PS C:Powershell> $nums=1..5 PS C:Powershell> $nums 1 2 3 4 5 数组的多态 象变量一样如果数组中元素的类型为弱类型,默认可以存储不同类型的值. PS C:Powershell> $array=1,"

Windows Powershell强类型数组_PowerShell

Powershell数组一般具有多态性,如果你不指定元素的具体类型,解释器会自动选择合适的类型存储每个元素.如果要统一限制所有元素的类型,可是使用类型名和一对方括号作为数组变量的类型.这样每当赋值时,会自动类型检查.如果目标数据类型不能转换成功,就会抛出一个异常. PS C:Powershell> [int[]] $nums=@() PS C:Powershell> $nums+=2012 PS C:Powershell> $nums+=12.3 PS C:Powershell>

Windows Powershell ForEach-Object 循环_PowerShell

对管道对象逐个处理 如果使用Get-WmiObject 获取系统中的服务,为了排版可能会也会使用Format-Table对结果进行表格排版. 复制代码 代码如下: PS C:Powershell> Get-WmiObject Win32_Service | Format-Table status,DisplayName -AutoSize status DisplayName ------ ----------- OK     Adobe Acrobat Update Service OK   

Windows Powershell 定义函数_PowerShell

函数是自定义的Powershell代码,有三个原则: 简短:函数名简短,并且显而易见. 聚合:函数可以完成多个操作. 封装和扩展:将一批Powershell语句进行封装,实现全新的功能需求. 函数的结构由三部分组成:函数名,参数,函数体 复制代码 代码如下: Function FuncName (args[]) {       code; } 使用函数作为别名 假如Powershell不支持"cd.." 命令,你可以通过定义函数实现这个功能: 复制代码 代码如下: PS C:Power