传统的控制台一般没有象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
Git 总是在一个 bash shell 中运行,并借助一些 shell 环境变量来决定它的运行方式。 有时候,知道它们是什么以及它们如何让 Git 按照你想要的方式去运行会很有用。 这里不会列出所有的 Git 环境变量,但我们会涉及最有的那部分。 全局行为 像通常的程序一样,Git 的常规行为依赖于环境变量。 GIT_EXEC_PATH 决定 Git 到哪找它的子程序 (像 git-commit
Puppeteer 寻找某些环境变量来帮助其操作。 如果 puppeteer 在环境中没有找到它们,这些变量的小写变体将从 npm 配置 中使用。 HTTP_PROXY, HTTPS_PROXY, NO_PROXY - 定义用于下载和运行 Chromium 的 HTTP 代理设置。 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD - 请勿在安装步骤中下载绑定的 Chromium。
环境变量 vue-element-admin 4.0 之后是基于 vue-cli来进行构建,所以所有的环境变量配置都是基于vue-cli来实现和控制的。 官方文档 .env # 在所有的环境中被载入 .env.[mode] # 只在指定的模式中被载入 一个环境文件只包含环境变量的“键=值”对: FOO=bar VUE_APP_SECRET=secre
一些 Electron 的行为受到环境变量的控制,因为他们的初始化比命令行和应用代码更早. POSIX shells 的例子: $ export ELECTRON_ENABLE_LOGGING=true $ electron Windows 控制台: > set ELECTRON_ENABLE_LOGGING=true > electron ELECTRON_RUN_AS_NODE 类似nod
设置变量,可以不必更改代码的控制应用程序配置和行为。 某些Electron行为由环境变量控制,因为它们比命令行和代码更早地初始化。 POSIX shell示例: 1 $ export ELECTRON_ENABLE_LOGGING=true 2 $ electron Copied! Windows控制台示例: 1 > set ELECTRON_ENABLE_LOGGING=true 2 > ele
在构建或者代码在端上运行中需要一些跟区分于环境的变量,用于配置构建流程或者运行时过程,这时候我们可以配置环境变量。 设置环境变量 执行命令时添加 比如: # OS X, Linux PORT=3000 fes dev # Windows (cmd.exe) set PORT=3000 && fes dev 如果要同时考虑 OS X 和 Windows,可借助三方工具 cross-en
Ruby解释器使用下列环境变量。 RUBYOPT 指定默认情况下传给Ruby解释器的选项。 sh系 RUBYOPT='-Ke -rkconv' export RUBYOPT csh系 setenv RUBYOPT '-Ke -rkconv' MS-DOS系 set RUBYOPT=-Ke -rkconv RUBYPATH 指定-S选项后,Ruby会搜索环境变量PATH指定的Ruby脚本。此时
在不更改代码的情况下控制应用程序配置和行为。 Electrond的某些行为受环境变量的控制, 因为它们比命令行标志和应用程序的代码更早初始化。 POSIX shell示例: $ export ELECTRON_ENABLE_LOGGING=true $ electron Windows 控制台示例: > set ELECTRON_ENABLE_LOGGING=true > electron Env