微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell :: 输入一个列表作为参数

如何解决PowerShell :: 输入一个列表作为参数

在同一个目录中,我有 2 个文件

  • 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 举报,一经查实,本站将立刻删除。