1

我在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,但我怎样才能让它工作?我所追求的是我想发送一个带有名称的参数,并且应该在上面的代码中捕获它。

4

2 回答 2

0

像那样?

param($name)

if (Test-Path env:\names)
{
    $names = $env:names.Split(",") | % { $_.Trim() }
}
else
{
    $names = $name.Split(",") | % { $_.Trim() }
}

 Write-Host -n "names: $names"
于 2012-10-23T11:48:47.200 回答
0

你这里一团糟。首先env:names是指环境变量的值names,不应该有\

然后,如果您希望脚本接受参数 - 只需添加param(string[] $names)为脚本的第一行

如果您想使用参数运行脚本 - 只需启动 powershell 并键入:full_path_to_script Peter,Mikael

于 2012-10-23T11:50:16.730 回答