我在powershell中有这个
if (Test-Path env:\names)
{
[string[]] $names= (dir env:\names).Value.Split(",") | % { $_.Trim() }
} else {
[string[]] $names= "peter","mikael","Anders","William"
}
Write-Host -n "names: " ; [string]$names
如果我想从命令提示符调用它可能吗?
我试过这个:
powershell -ExecutionPolicy RemoteSigned -File MainScript.ps1 -PARAM "Peter,Mikael"
我确实理解,因为我正在寻找env:names
,所以无法工作但是我怎样才能使它工作?我想要的是,我想发送一个带有名称的参数,并且应该像上面的代码那样被捕获。
答案 0 :(得分:0)
喜欢那个?
param($name)
if (Test-Path env:\names)
{
$names = $env:names.Split(",") | % { $_.Trim() }
}
else
{
$names = $name.Split(",") | % { $_.Trim() }
}
Write-Host -n "names: $names"
答案 1 :(得分:0)
你这里有一个完整的混乱。首先env:names
表示环境变量names
的值,不应该是\
。
然后,如果您希望脚本接受参数 - 只需添加param(string[] $names)
作为脚本的第一行
如果要使用参数运行脚本 - 只需启动powershell并键入:full_path_to_script Peter,Mikael