如何在PowerShell中设置含特殊字符的环境变量?
在PowerShell中设置含特殊字符的环境变量(非系统环境变量)
直接执行$env:OVERRIDEPARM_|out|serverworkdir = "something"会触发错误,原因是PowerShell将变量名中的|解析为管道运算符,误把out当成命令执行。以下两种方法可以解决该问题:
方法1:使用.NET的[Environment]类
通过[Environment]::SetEnvironmentVariable()方法可直接指定带特殊字符的变量名,第三个参数Process确保仅当前PowerShell会话生效(符合非系统环境变量的要求):
[Environment]::SetEnvironmentVariable("OVERRIDEPARM_|out|serverworkdir", "something", [EnvironmentVariableTarget]::Process)
方法2:使用Set-Item操作Env:驱动器
PowerShell的Env:驱动器支持通过Set-Item命令管理环境变量,变量名中的特殊字符会被当作路径的一部分处理:
Set-Item -Path "Env:OVERRIDEPARM_|out|serverworkdir" -Value "something" # 简洁写法 Set-Item Env:OVERRIDEPARM_|out|serverworkdir "something"
验证设置结果
可通过以下命令确认环境变量是否设置成功:
# 方法1 [Environment]::GetEnvironmentVariable("OVERRIDEPARM_|out|serverworkdir", [EnvironmentVariableTarget]::Process) # 方法2 Get-Item Env:OVERRIDEPARM_|out|serverworkdir
内容的提问来源于stack exchange,提问作者openCivilisation
相关产品推荐
相关产品推荐

