2017-01-14 50 views
-1

私はusernameとdbとpwdを変数としてsqlcmdに渡そうとしていますが、それは気に入らないようです。powershell sqlcmdにパラメータを渡します

この作品

#Run SQLCMD for each file 
ForEach ($FileName in $FileNames) 
{ 
    Write-Host $FileName.BaseName 
    sqlcmd -S 123.database.net -d EMR -U user1-P mypassword -i $FileName.FullName 
} 

これは動作しません

#Run SQLCMD for each file 
$db = "123.database.net" 
$dbId = "user1" 
$pwd = "mypassword" 

ForEach ($FileName in $FileNames) 
{ 
    Write-Host $FileName.BaseName 
    sqlcmd -S $db -d EMR -U $dbId -P $pwd -i $FileName.FullName 
} 

エラーメッセージ

sqlcmd : Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'user1'..

+0

"機能しません"とはどういう意味ですか?どのようなエラーメッセージが表示されますか?実行中のコマンドラインを出力して、それが正しいことを確認しましたか? – alroc

答えて

0

sqlcmdのは、グローバル変数として.Makeその範囲を持っています。それからそれを選ぶべきです。

#Run SQLCMD for each file 
$global:db = "123.database.net" 
$global:dbId = "user1" 
$global:pwd = "mypassword" 
ForEach ($FileName in $FileNames) 
{ 

Write-Host $FileName.BaseName 
sqlcmd -S $db -d EMR -U $dbId -P $pwd -i $FileName.FullName 

} 

注:

はこれを行う、私は2番目のスクリプトレットは、特定の内の任意のエラーを投げたりされていないことを考慮していません。

+0

助けてくれなかった –

+0

@JustinHomes:エラーを投稿してください。原因を見ることなく解決策を出すのは非常に一般的です。 –

+0

あなたのログインの問題からあなたが言ったように。あなたはコンソールから直接試しましたか?ユーザー1のログインが失敗したことが明らかになっているためです。パスワードの問題またはユーザーの権限の問題のいずれかを意味します。 –

関連する問題