如何解决PowerShell :: 输入一个列表作为参数
-
Servers.txt
(包含服务器名称列表) -
test.ps1
(这是我的 PowerShell 脚本)
我的 test.ps1 包含此代码:
param(
$Servers = get-content -Path "Servers.txt"
ForEach($Server in $Servers) {
$instance = $Server}
)
一旦我尝试运行它,就会出现错误:
At C:\test.ps1:2 char:15
+ $Servers = get-content -Path "Servers.txt"
+ ~
Missing expression after '='.
At C:\test.ps1:2 char:13
+ $Servers = get-content -Path "Servers.txt"
+ ~
Missing ')' in function parameter list.
At C:\test.ps1:5 char:1
+ )
+ ~
Unexpected token ')' in expression or statement.
+ CategoryInfo : ParserError: (:) [],ParseException
+ FullyQualifiedErrorId : MissingExpressionAfterToken
这很奇怪,因为代码很简单。
目标是输入我稍后要解析的服务器名称列表。
有什么帮助吗?
解决方法
要将命令(而不是表达式)的输出用作参数变量的默认值,您必须将其转换为带有(...)
的表达式,grouping operator:
# Parameter declarations
param(
$Servers = (get-content -Path "Servers.txt")
)
# Function body.
ForEach($server in $Servers) {
$instance = $server
}
注意:仅当必须通过多个命令(或整个语句(s),例如 $(...)
或 foreach
循环)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。