gpt4 book ai didi

powershell - 调用函数时变量不更新

转载 作者:行者123 更新时间:2023-12-04 17:57:03 24 4
gpt4 key购买 nike

我的个人资料脚本中有这个。

$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"
}
}
}
}

它的目的是让我能够轻松地将我需要的东西添加到我的路径中。例如,我可以调用 AddPath("ruby","git","notepad++")将这三件事添加到我的路径中。如果我已经添加了项目,我希望它不会添加它们,所以我创建了 $AddedPaths数组来跟踪已经添加的内容。但是,当我调用该函数时它不会更新,因此仍然可以添加重复项。我究竟做错了什么?

最佳答案

你需要这样做:

$Global:AddedPathes += $key

那应该是你唯一需要的地方 $Global:因为它修改了它。

关于powershell - 调用函数时变量不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com