你好有一个包含21个代码的文件在power shell中。我需要一种方法来在c#中使用按钮来运行此文件。我在Visual Studio 2010中使用c#。请让我知道是否有办法实现。从c#应用程序运行powershell
// Powershell
$Proc = Get-Process | Sort-Object CPU -Descending
$cores = Get-WmiObject Win32_processor
$memory = Get-WmiObject Win32_OperatingSystem
$Total = 10
$num = 1
Clear-Content c:\scripts\prueba.txt
foreach ($objItm in $Proc) {
If ($num -gt $Total) {
break #break the loop
}
[string] $strID=[System.Convert]::ToString($objItm.ID)
[string] $strProcessName=[System.Convert]::ToString($objItm.ProcessName)
[string] $strCPU=[System.Convert]::ToString($objItm.CPU)
[string] $strNUM=[System.Convert]::ToString($num)
$info=$strNUM+"-"+$strID+"-"+$strProcessName+"-"+$strCPU
$num += 1
$info|Add-Content c://scripts/prueba.txt
}
//Code c#
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open(); RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(scriptFile)
Execute PowerShell script results = pipeline.Invoke();
我需要例如按下一个按钮,使脚本发生
是的,有一种方法可以实现这一点。你有什么尝试,你做了多少研究? – alroc
那么我一直在寻找并找到一种方式'RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration); runspace.Open(); RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace); 流水线pipeline = runspace.CreatePipeline(); pipeline.Commands.Add(scriptFile); //执行PowerShell脚本 results = pipeline.Invoke();' –
但使用我的sp位置并且不起作用。我不知道还需要什么,因为第一个答案中的代码已经在powershell中测试过并且工作完美 –