当前位置: 首页 > 编程语言 > C#

如何通过C#向PowerShell传递参数分享

时间:2023-04-11 01:00:04 C#

C#如何向PowerShell传递参数支持用户交互但提示用户失败的命令。尝试支持用户交互的主机程序,例如WindowsPowerShell控制台或WindowsPowerShellISE,并从不支持用户交互的类型的命令中删除与提示相关的命令,例如WindowsPowerShell工作流"??CS:privatestaticvoidRunPowershellScript(stringscriptFile,stringscriptParameters){stringscriptParameters="param1param2";RunspaceConfigurationrunspaceConfiguration=RunspaceConfiguration.Create();Runspacerunspace=RunspaceFactory.CreateRunspace(runspaceConfiguration);runspace.Open();runspace.CreatePipeline();命令scriptCommand=newCommand(scriptFile);CollectioncommandParameters=newCollection();foreach(stringscriptParameterinscriptParameters.Split('')){CommandParametercommandParameter=newCommandParameter(null,scriptParameter);commandParameters.Add(commandParm);scriptCommand.Parameters.Add(commandParm);}pipeline.Commands.Add(scriptCommand);集合psObjects;psObjects=pipeline.Invoke();}PS:FunctionFoo($arg1,$arg2){Write-Host$arg1Write-Host$arg2}Foo$args[0]$args[1]我在这里错过了什么?我怎样才能使这项工作?异常与参数无关要么不使用需要实现主机UI(包括Write-Host)的命令,要么实现自己的自定义主机(PSHost)和此UI(PSHostUserInterface)。这是一个简单主机的示例(如果您选择该路由,MSDN上有更多内容):http://msdn.microsoft.com/en-us/library/windows/desktop/ee706559(v=vs.85).aspx实施具有UI的主机对于简单的任务来说可能太多了。您可能会考虑简单地定义一个具有相同参数的函数Write-Host并实现它以在您的特定情况下工作(例如[Console]::WriteLine(...))。这个函数应该在脚本中定义或者最好以不同的方式提供,例如全局调用另一个脚本。PS如果您有自定义主机,请使用CreateRunspace()重载之一,将主机实例作为参数,以链接主机和运行空间。以上就是C#学习教程的全部内容:如何通过C#给PowerShell传递参数。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: