Es posible y en más de una forma. Aquí es probablemente el más simple.
Dadas nuestras funciones están en el guión MyFunctions.ps1
(sólo uno para esta demostración):
# MyFunctions.ps1 contains one or more functions
function Test-Me($param1, $param2)
{
"Hello from Test-Me with $param1, $param2"
}
A continuación, utilice el código de abajo. Es en PowerShell pero es literalmente traducible a C# (usted debe hacer eso):
# create the engine
$ps = [System.Management.Automation.PowerShell]::Create()
# "dot-source my functions"
$null = $ps.AddScript(". .\MyFunctions.ps1", $false)
$ps.Invoke()
# clear the commands
$ps.Commands.Clear()
# call one of that functions
$null = $ps.AddCommand('Test-Me').AddParameter('param1', 42).AddParameter('param2', 'foo')
$results = $ps.Invoke()
# just in case, check for errors
$ps.Streams.Error
# process $results (just output in this demo)
$results
Salida:
Hello from Test-Me with 42, foo
Para más detalles de la PowerShell
clase, véase:
http://msdn.microsoft.com/en-us/library/system.management.automation.powershell
Si desea ejecutar powershell en .NET Core, consulte [https://stackoverflow.com/questions/39141914/running-powershell-from-net-core](https://stackoverflow.com/ preguntas/39141914/running-powershell-from-net-core) – Sielu