【问题标题】:checking for existance of ";C:\Python27" before appending ";C:\Python27" to environment variable PATH在将“;C:\Python27”附加到环境变量 PATH 之前检查“;C:\Python27”是否存在
【发布时间】:2014-07-08 10:43:54
【问题描述】:
我正在使用以下代码将“;C:\Python27”附加到环境变量 PATH..
@echo off
Setx Path "%PATH%;C:\Python27" -M
PAUSE
但如果我多次运行此批处理文件,它会多次附加“;C:\Python27”,这是不应该发生的。
所以我必须在将其附加到 PATH 变量之前检查 ;C:\Python27。
有什么命令可以达到这个目的吗?
【问题讨论】:
标签:
path
append
environment-variables
【解决方案1】:
下面的 Powershell 应该可以做到:
$needPython = $env:path | select-string -NotMatch -SimpleMatch "c:\python27"
if ($needPython) {
[Environment]::SetEnvironmentVariable("tstpath", $env:path + ";c:\python27", "User")
}
您可以将User 更改为Machine 或Process 以设置机器或进程级别的环境变量。
您可以直接从 powershell 提示符运行它。
如果您是从 dos 命令行使用(您需要脚本的完整路径或.\,如果它在当前目录中):
powershell "& '.\myscript.ps1'"