如何在Powershell中运行存储在变量中的类方法
我有以下课程:如何在Powershell中运行存储在变量中的类方法,powershell,class-method,Powershell,Class Method,我有以下课程: Class ImportData{ $importSource $importUser $importPass $importType ImportData(){ } [void]GetImportData($id){ $srcQuery = "SELECT * FROM [$global:sqlDB].[dbo].table WHERE id=$id" $result = Invoke
Class ImportData{
$importSource
$importUser
$importPass
$importType
ImportData(){
}
[void]GetImportData($id){
$srcQuery = "SELECT * FROM [$global:sqlDB].[dbo].table WHERE id=$id"
$result = Invoke-Sqlcmd -Query $srcQuery -ServerInstance $global:sqlhost -Database $global:sqlDB
$srcAddress = "https://"+$result.impAddress
$srcUser = $result.impUser
$srcPass = $result.impPassword
$srcAuth = if($result.authoritative -eq 1) { $true } else { $false }
$srcType = $result.importType
$command = "Query$srcType($srcAddress,$srcUser,$srcPass)"
& $command
Write-Host $command
Invoke-Expression $command -ErrorAction Stop -ErrorVariable SearchError
}
[void]Queryapi($Address,$User,$Password){
Write-Host "Ran Queryapi method on Class Type: ImportData"
}
[void]processImport($data){
}
}
尝试运行动态调用时
调用表达式$command-ErrorAction停止-ErrorVariable
搜索错误
或者&$command
,它将不允许我运行它,因为它不是命令。但是我的课堂上有一种方法
有没有办法根据查询返回的结果集动态调用方法?
如代码中所示,我已经尝试了
调用表达式
和过程。但是没有用。实际上,这里根本不需要调用表达式。
Powershell支持基于函数名字符串的本机动态调用
您只需要使用$this
关键字指定要执行class方法,然后像这样动态调用函数
$command=$this.“查询$srcType”($srcdaddress、$srcUser、$srcPass)
参考资料
实际上,这里根本不需要调用表达式。
Powershell支持基于函数名字符串的本机动态调用
您只需要使用$this
关键字指定要执行class方法,然后像这样动态调用函数
$command=$this.“查询$srcType”($srcdaddress、$srcUser、$srcPass)
参考资料