使用参数调用powershell

时间:2012-10-23 11:24:14

标签: powershell powershell-v2.0

我在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,所以无法工作但是我怎样才能使它工作?我想要的是,我想发送一个带有名称的参数,并且应该像上面的代码那样被捕获。

2 个答案:

答案 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