向Powershell脚本添加两个选项
原谅我,因为我还在学习powershell,所以这可能是一个愚蠢的问题,但我如何向.ps1添加选项? 例如,我目前有一个脚本可以下载一个文件并运行它,但是如果它不能运行它,它将在本地查找该文件并运行它。如何将这两者分开,以便用户可以选择下载或在本地运行? 例如。: “./script.ps1本地” 将在本地查找文件并运行它 “./script.ps1外部” 将下载文件并运行它向Powershell脚本添加两个选项,powershell,powershell-2.0,Powershell,Powershell 2.0,原谅我,因为我还在学习powershell,所以这可能是一个愚蠢的问题,但我如何向.ps1添加选项? 例如,我目前有一个脚本可以下载一个文件并运行它,但是如果它不能运行它,它将在本地查找该文件并运行它。如何将这两者分开,以便用户可以选择下载或在本地运行? 例如。: “./script.ps1本地” 将在本地查找文件并运行它 “./script.ps1外部” 将下载文件并运行它 我不确定函数是否适用于此,因为脚本的目的不是将其导入模块,我只想让您运行文件add顶部的.ps1 Param( [P
我不确定函数是否适用于此,因为脚本的目的不是将其导入模块,我只想让您运行文件add顶部的.ps1
Param(
[Parameter(Position=1)][string]$option
)
Switch ($option)
{
'local' { RunLocal }
'other' { RunOther }
default { RunDefault }
}
看起来像
Param(
[Parameter(Position=1)][string]$option
)
function RunLocal {
Write-Host "RunLocal"
}
function RunOther {
Write-Host "RunOther"
}
function RunDefault {
Write-Host "RunDefault"
}
Switch ($option)
{
'local' { RunLocal }
'other' { RunOther }
default { RunDefault }
}
如果需要将传递给参数的值约束为一组固定值,请使用
[ValidateSet(…)]
参数属性:
[CmdletBinding()]
Param(
[ValidateSet('Local', 'External')]
[string] $Option = 'Local'
)
Switch ($Option)
{
'local' {
# ...
break
}
'external' {
# ...
break
}
}
上面的默认值是
-Option
(因此参数变量$Option
)到'Local'
,同时允许将Local
或External
显式传递到-Option
,不允许其他值。不管怎样,我得到了它。我在param之前还有一句话。谢谢