-2

ここで見つけたこのデータベース接続スクリプトを使用します。私はそれを変更し、スクリプトを実行できるように適切な設定を行いましたが、発生しているエラーを理解していません。

スクリプト コードは次のとおりです。

Param(
  [Parameter(
  Mandatory = $true,
  ParameterSetName = '',
  ValueFromPipeline = $true)]
  [string]$Query
  )

$MySQLAdminUserName = 'myName'
$MySQLAdminPassword = 'myPass'
$MySQLDatabase = 'myDatabase'
$MySQLHost = 'HostingServerForMyDatabase'
$ConnectionString = server= + $MySQLHost + ;port=3306;uid= + $MySQLAdminUserName + ;pwd= + $MySQLAdminPassword + ;database=+$MySQLDatabase+

Try {
  [void][System.Reflection.Assembly]LoadWithPartialName(MySql.Data)
  $Connection = New-Object MySql.Data.MySqlClient.MySqlConnection
  $Connection.ConnectionString = $ConnectionString
  $Connection.Open()

  $Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection)
  $DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
  $DataSet = New-Object System.Data.DataSet
  $RecordCount = $dataAdapter.Fill($dataSet, data)
  $DataSet.Tables[0]
  }

Catch {
  Write-Host ERROR  Unable to run query  $query `n$Error[0]
 }

Finally {
  $Connection.Close()
  }

それで、これは私が次のコマンドで受け取るエラーです-

コマンド: .\MySQL.ps1 -Query "select GUID FROM MYTABLE"

エラー:パラメーターの宣言は、オプションの初期化式を含む変数名のカンマ区切りのリストです。At (my script file path)\MySQL.ps1:5 char:30 + ValueFromPipeline = $true)] <<<<

4

1 に答える 1

2

どうやらエラーは、質問やリンクに示されているようにスクリプトを実行したことによるものではなく、不明な他のスクリプトです。

エラー メッセージは、閉じ括弧が欠落していることを示しています。

パラメーターの宣言は、オプションの初期化式を含む変数名のコンマ区切りリストです。At (my script file path)\MySQL.ps1:5 char:30 + ValueFromPipeline = $true>] <<<<

こことリンクに投稿したコードは正しいです。

Param(
  [Parameter(
  Mandatory = $true,
  ParameterSetName = '',
  ValueFromPipeline = $true)]
  [string]$Query
  )

注意$true)]

リンクとまったく同じになるように MySQL.ps1 を修正します。

于 2013-06-06T21:14:18.103 に答える