2017-10-20 7 views
0

以下を使ってみましたが、達成しようとしているのはこれをPowerShellで渡すことができ、 -companyCodeの値。私のPS文字列の一部を変数として設定する必要があります。実行時に値を求めます。

"\Program Files (x86)\Home\Business Intelligence\ScriptoSql\"ScriptoSqldb1.exe -companyCode="" -sqlserver=SQLSERVER1\INS1,8071 -sqldatabase=StagingDB 

今、私は、文字列でそれに値を渡す場合、コマンドは動作しますが、私はそれはその値を求めます呼び出されたときにそれを動的にしたい、それは、ユーザ、スクリプトによって入力されます走る

答えて

1

コマンド呼び出しをmandatory parameter-CompanyCodeのカスタム関数で囲みます。そうすれば、関数が呼び出されたときにPowerShellは欠落しているパラメータを要求します。

function Invoke-ScriptToSqlDB { 
    [CmdletBinding()] 
    Param(
     [Parameter(Mandatory=$true)] 
     [string]$CompanyCode 
    ) 

    & "${env:ProgramFiles(x86)}\...\ScriptoSqldb1.exe" -companyCode=$CompanyCode ... 
} 

Invoke-ScriptToSqlDB -CompanyCode 'whatever'  # pass company code 
Invoke-ScriptToSqlDB        # prompt for company code 
+0

私はあることしかし、私はエラー 文字列はターミネータが欠落している取得を通過しています: – Westie

+0

は、ネストされたを削除TerminatorExpectedAtEndOfString:」 + CategoryInfoを:。ParserError:(:) []、ParentContainsErrorRecordException + FullyQualifiedErrorIdあなたのコマンドパスから二重引用符をつけてください。 –

関連する問題