gpt4 book ai didi

powershell - 有没有办法在 PowerShell 脚本中使某些函数成为 "private"?

转载 作者:行者123 更新时间:2023-12-04 00:47:02 25 4
gpt4 key购买 nike

当我的 shell 启动时,我加载了一个外部脚本,其中包含一些我用来测试的功能。就像是:

# Include Service Test Tools
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
. $scriptPath\SvcTest.ps1

SvcTest.ps1 ,我有两个功能:
function isURI ([string] $address)
{
($address -as [System.URI]).AbsoluteURI -ne $null
}

也:
function Test-Service ([string] $url)
{
if (-Not (isURI($url)))
{
Write-Host "Invalid URL: $url"
return
}

# Blah blah blah, implementation not important
}
isURI函数基本上只是一个实用函数,它允许 Test-Service或许还有其他函数验证 URI。但是,当我启动 shell 时,我看到 isURI是一个全局加载的函数。我什至可以输入 isURI http://www.google.com从命令行返回 True .

我的问题:有没有办法制作 isURI私有(private)的,因此仅在 SvcTest.ps1 内起作用可以使用它,同时仍然允许 Test-Service成为全局性的?基本上,我正在寻找一种在 PowerShell 脚本中使用属性封装的方法。

最佳答案

如果你想为你的函数使用一个私有(private)作用域,它在 Powershell 中是这样完成的。

function Private:isURI ([string] $address)
{
($address -as [System.URI]).AbsoluteURI -ne $null
}

关于powershell - 有没有办法在 PowerShell 脚本中使某些函数成为 "private"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25123877/

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