我在我的个人资料脚本中有这个.
$AddablePaths = @{
"python3"=";C:\Python32";
"python2"=";C:\Python27";
"D"=";C:\D\dmd2\windows\bin";
"gcc"=";C:\MinGW\bin";
"verge"=";C:\Users\Cold\Dev\Verge\tools";
"ruby"=";C:\Ruby192\bin";
"git"=";C:\Program Files\Git\cmd";
"cmake"=";C:\Program Files\CMake 2.8\bin";
"emacs"=";C:\Users\Cold\Dev\emacs\bin";
"notepad++"=";C:\Program Files\Notepad++";
"boost-build"=";C:\Users\Cold\Dev\C++\boost-build\bin";
"svn"=";C:\Program FIles\SlikSvn\bin";
"gtk2"=";C:\Program Files\GTK2-Runtime\bin";
"qt"=";C:\Qt\bin";
"komodo"=";C:\Program Files\ActiveState Komodo Edit 6\";
"hg"=";C:\Program Files\TortoiseHg\"
}
$AddedPaths = @()
function AddPath($keys)
{
if ($keys.Count -eq 0) { return }
foreach ($key in $keys)
{
if ($AddablePaths.Contains($key))
{
if (!($AddedPaths -contains $key))
{
$env:Path += $AddablePaths[$key]
$AddedPaths += $key
}
}
else
{
Write-Host "Invalid path option. Options are:"
foreach ($key in $AddablePaths.keys) {
Write " $key"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它的目的是让我能够轻松地将我需要的东西添加到我的路径中.例如,我可以打电话AddPath("ruby","git","notepad++")将这三件事添加到我的路径中.我希望它不添加项目,如果我已经添加它们,所以我创建了$AddedPaths数组以跟踪已经添加的内容.但是,当我调用该函数时它不会更新,因此仍然可以添加重复项.我究竟做错了什么?
你需要这样做:
$Global:AddedPathes += $key
Run Code Online (Sandbox Code Playgroud)
这应该是你需要$Global:修改它的唯一地方.
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |