powershell - 如何正确传递参数?

标签 powershell

请在下面查看我的功能:

Function Query {
    param (
        [string]$query
        [string]$server
        [string]$dbase
        [string]$user
        [string]$pass
    )

    if ($user) { 
        $connstr = "Server={0};Database={1};User ID={2};Password={3};Trusted_Connection=False;Connect Timeout=15" -f $server, $dbase, $user, $pass 
    } 
    else { 
        $connstr = "Server={0};Database={1};Integrated Security=True;Connect Timeout=15" -f $server, $dbase
    }
    $conn.ConnectionString = $connstr 


    switch ($query.Split()[0]) {
        "SELECT" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
            $dataset = New-Object System.Data.DataSet
            $adapter.Fill($dataset) | Out-Null
            return $dataset
        }
        "UPDATE" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            return $cmd.ExecuteNonQuery()
        }
        "INSERT" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            return $cmd.ExecuteNonQuery()
        }
    }
}

Query -query "SELECT TOP 10 myField FROM myTable" -server "SQLEXPRESS" -dbase "TEST"

这行不通,Powershell ISE在param部分给了我红色,但我不明白为什么。由于人们似乎有许多不同的方式来构造Powershell函数(我是一个初学者:)),我有些困惑。

如何使此功能起作用?

最佳答案

将逗号,放在参数之间:

Function SomeName {
  Param ($param1,$param2,$param3)
}

等等。您可以在逗号后使用空格或换行符以提高可读性,这是大多数人所做的事情:
Function SomeName {
   param (
          $param1,
          $param2 
         )
}

关于powershell - 如何正确传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28302922/

相关文章:

c# - Powershell 实例的 Streams 属性上的 "Information"属性在编译时不可用

arrays - 确保管道始终生成数组而不使用 @()?

php - 使用 powershell 为 wampserver 创建虚拟主机

powershell - Powershell-从Domain.com/OU/GivenName姓氏中删除Domain.com/OU/

memory - Powershell 内存使用情况

powershell - 在Powershell中组合多个Get-Content cmdlet

.net - Powershell GUI - 是否有用于选择 OU 的 Active Directory 对话框?喜欢 FileOpenDialog?

powershell - 如何在PowerShell中比较两个字符串对象的内容

powershell - 为所有用户删除 AppxPackage

powershell - PowerShell 中错误的 catch block 执行