2017-10-20 109 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

我传递通过,但是我得到一个错误 字符串缺少终结者:” + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException + FullyQualifiedErrorId:TerminatorExpectedAtEndOfString – Westie

+0

删除嵌套双命令从你的命令路径。 –

相关问题