zoukankan      html  css  js  c++  java
  • C#执行PowserShell 脚本

    Windows PowserShell能够很简洁 快速通过Script脚本方式获得我们想要执行效果. 如何在C#中任意执行PowerShell脚本.?类似目前我要在做一个进程管理工具. 通过PowerShell脚本方式获取当前系统进程调用的详细信息. C#如何执行Shell Script:

    步骤如下:

    <1>前提:安装PowerShell SDK. Selenium

    要在C#执行Power Shell 脚本.需要在PowerShell的SDK添加相关引用. Windows 7系统自动集成Windows PowerShell 2.0版本.如果尚未请点击下载安装

    <2>新建Console Application项目 命名:CallPowerShellDemo .添加引用:System.Management.Automation 这个命名空间需要引用PowerShell SDK中System.Management.Automation.dll. 如果已经PowerShell SDK可以在目录:C:Program FilesReference AssembliesMicrosoftWindowsPowerShellv1.0 下找到:

     

     

     

     

     

     

     

     

    添加相关引用:

       1:  //导入引入
       2:  using System.Management.Automation;
       3:  using System.Management.Automation.Runspaces;
       4:  using System.Management;
       5:  using CallPowerShellDemo.EntityModel;

    封装参数实体:

       1:   /// <summary>
       2:  /// 定义一个封装Shell脚本命令参数实体类
       3:  /// Author:chenkai Date:2010年11月9日10:27:55
       4:  /// </summary>
       5:  publicclass ShellParameter
       6:      {
       7:  public string ShellKey { get; set; }
       8:  public string ShellValue { get; set; }
       9:      }

    执行脚本方法:

    Main方法中调用:

       1:  static void Main(string[] args)
       2:          {
       3:              Console.WriteLine("请输入你要执行的PowserShell命名:");
       4:  string gettakeresult=Console.ReadLine();
       6:  //Main Method Get All Process
       7:              List<string> getshellcmdlist = new List<string> ();
       8:              List<EntityModel.ShellParameter> getpatalist = new List<ShellParameter> 
       9:              {
      10:  new ShellParameter{ ShellKey="Name",ShellValue="QQ*"}
      11:              };
      14:  if (!string.IsNullOrEmpty(gettakeresult))
      15:              {
      16:                  getshellcmdlist.Add(gettakeresult);
      17:              }
      18:  //Execu Cmd
      19:  string getresult=Program.ExecuteShellScript(getshellcmdlist,getpatalist);
      21:  //Output ExecuteResult
      22:              Console.WriteLine("执行结果:");
      23:              Console.WriteLine(getresult);
      24:          }

    执行结果: 获取以Ca作为开头名称系统进程信息 ShellScript :get-process Ca*

    则利用PowerShell脚本轻松获取进程名称以Ca开头所有进程名称. 类似我们轻松在获取360在本地系统详细的版本信息: get-process 360* –fileversioninfo

  • 相关阅读:
    Memcached存储溢出
    Memcached windows安装
    Memcached简介
    HTTP请求中怎样选择Get和Post方式
    【cogs 597】【dp】交错匹配
    &lt;LeetCode OJ&gt; 58. Length of Last Word
    codevs1051
    最重要的 Java EE 最佳实践
    android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩
    [Phonegap+Sencha Touch] 移动开发26 Android下的sencha touch程序,转屏时,Ext.Viewport不能触发orientationchange事件的解决的方法
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/4122896.html
Copyright © 2011-2022 走看看