我有一个powershell脚本,它使用'quser'命令提取有关登录到一系列终端服务器的用户的数据。
我想在输出文件中添加一个时间戳,这个时间戳变量是在一个windows批处理文件中创建的,然后调用powershell脚本传递计算机名和时间戳,但是powershell脚本在函数中出现'Missing')错误参数列表'
param(
[CmdletBinding()]
[Parameter(ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = 'localhost'
[string[]]$timestamp <========= this is the line I have added
)
如果我删除添加的行(在上面的代码中标记),脚本运行正常
答案 0 :(得分:1)
您需要在参数之间添加逗号:
param(
[CmdletBinding()]
[Parameter(ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string[]]$ComputerName = 'localhost',
[string[]]$timestamp
)
除非你想要多个时间戳,否则你可能只想让它成为字符串而不是字符串数组(所以[string]$timestamp
)。
我得到的错误消息看起来像这样(除了它是红色的)。第一个错误指向localhost行的末尾然后有一个连锁错误,那个时候似乎是一个虚假的)
:
PS C:\> param(
>> [CmdletBinding()]
>> [Parameter(ValueFromPipeline=$true,
>> ValueFromPipelineByPropertyName=$true)]
>> [string[]]$ComputerName = 'localhost'
>> [string[]]$timestamp
>> )
>>
At line:5 char:38
+ [string[]]$ComputerName = 'localhost'
+ ~
Missing ')' in function parameter list.
At line:7 char:1
+ )
+ ~
Unexpected token ')' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInFunctionParameterList
我在这里使用Powershell 3。其他版本可能会以不同方式显示错误。