需要将我的 PS 字符串的一部分设置为变量,以便在运行时要求输入值



我已经尝试使用以下内容,但是我想要实现的是能够通过PowerShell传递它,并要求我输入-companyCode的值。

"Program Files (x86)HomeBusiness IntelligenceScriptoSql"ScriptoSqldb1.exe -companyCode="" -sqlserver=SQLSERVER1INS1,8071 -sqldatabase=StagingDB

现在,如果我在字符串中传递一个带有它的值,则该命令有效,但我想使其动态化,因此当调用它时,它会要求该值,然后由用户输入并运行脚本。

命令调用包装在具有强制参数 -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

最新更新