如何从C#运行powershell 执行脚本脚本

11-2511-2211-1811-1511-1111-0911-0811-0711-03
12345678910
12345678910
淘宝互刷单刷信誉刷钻平台 asp版 v9.6WordPress 官方简体中文版 v4.5.3 完整asp企业网站源码(后台功能无限制) V1.1.01 Plupload ajax批量上传插件php版 2.1.3
淘宝素材免费下载
网站地图导航
欢迎交换友情链接 联系QQ: 友情链接PowerShell中调用外部程序和进程操作命令例子
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PowerShell中调用外部程序和进程操作命令例子,给出了进程操作的一些命令和调用外部应用程序的方法,需要的朋友可以参考下
学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题。调用了外部程序,势必就要对进程进行管理,这就是本文要介绍的。
1、Get-Process,返回进程。
Get-Process [-id] ,按pid获取
Get-Process -name ,按进程名
Get-Process -inputObject ,传入参数
举例:get-process -name mmc,显示所有mmc的进程。
2、Start-Process,启动一个进程
语法:Start-Process -FilePath &可执行文件的路径& -ArgumentList &参数列表&
说明:在PowerShell v2.0以上才支持!
3、Stop-Process,停止一个或多个正在运行的进程。
Stop-Process [-id] ,停止指定的pid数组的进程
Stop-Process -name ,停止一组进程名列表
Stop-Process -inputObject ,停止一个Process类型的进程数组里面的所有进程。
如:Stop-Process -name notepad,这个功能也可以这样实现:
$pro = Get-Process - $pro.Kill(); 或 (Get-Process -name notepad).Kill();
Windows提供了一个taskkill.exe程序,通过它也可以停止程序:taskkill /f /im java.exe
用这个命令,当我们要结束在cmd.exe里面运行的java.exe时,我们只结束java.exe,这个时候cmd也会被结束。
4、使用点(.)调用ps1或批处理文件(Invoke-Expression)
说明:可以在PowerShell交互环境中和PS1文件中调用现有的PS1文件,使用点(.)作为调用符。我曾经试过使用Invoke-Item,好像没有启动得了。
也可以使用Invoke-Expression(Alias为iex)命令来实现,有两种用法:
C:\PS&invoke-expression -command "C:\ps-test\testscript.ps1"
C:\PS& "C:\ps-test\testscript.ps1" | invoke-expression
注意:这里可以使用ps1,也可以使用其它可执行的批处理文件,如.cmd、.bat等。
5、以默认打开方式打开文件(Invoke-Item)
语法:Invoke-Item &要打开的文件路径&
举例:Invoke-Item "c:\1.txt" #将使用txt文件的默认打开工具(即记事本)打开c:\1.txt
说明:文件必须存在,否则会报告“该路径不存在”的错误。
6、使用&调用程序
语法:& &可执行文件路径& [&参数列表&]
代码如下:$execPath="D:\Progra~1\FlashFXP\flashfxp.exe"
$execArgs="-upload ftp://u:p@ip:21 "
$execArgs=$execArgs+"-remotepath=`"/`" "
$execArgs=$execArgs+"-localpath=`"d:\123\`" "
& $execPath $execArgs.Split()
7、使用cmd执行DOS内部或外部命令
说明:有很多DOS命令被CmdLet的别名占用了,所以如果还像之前一样使用就会发现参数可能不正确了。为了可以与以前批处理里面用法兼容,可以使用cmd /c来调用DOS内部或外部命令。
语法:cmd /c
举例:cmd /c del /s /q D:\testdir\testsubdir\*.*
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具C#调用powershell相互操作-c/c++-电脑编程网C#调用powershell相互操作作者:haofefe 和相关&&首先我们来写一个C#调用powershell的公共方法&需要引用:System.Management.Automation.dll&此dll一般装上powershell 的sdk就可以找到&我这里直接放到源码里了。。&折叠展开C# 代码&
1. using System.M
2. using System.Management.A
3. using System.Management.Automation.R & 执行脚本代码如下:&折叠展开C# 代码&
1. /// &summary&
/// Power脚本基础
/// &/summary&
public static class Power
/// &summary&
/// 运行脚本信息,返回脚本输出
/// &/summary&
/// &param name=&scriptText&&需要运行的脚本&/param&
/// &returns&output of the script&/returns&
public static string RunScript(List&string& scripts,List&PSParam& pars)
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
foreach (var scr in scripts)
mands.AddScript(scr);
//注入参数
if (pars != null)
foreach (var par in pars)
runspace.SessionStateProxy.SetVariable(par.Key,par.Value);
//返回结果
var results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
stringBuilder.AppendLine(obj.ToString());
return stringBuilder.ToString();
/// &summary&
/// 脚本参数
/// &/summary&
public class PSParam
public string Key
public object Value
} & &这句为注入脚本一个.net对象:runspace.SessionStateProxy.SetVariable(par.Key,par.Value);
& &这样在powershell脚本中就可以直接通过$key访问和操作这个对象&下面来看调用实例:&定义一个.net对象,以便powershell中调用:折叠展开C# 代码&
1. class info
public int x { }
public int y { }
public int z { }
} & 实例化一个对象psobj。。就是上面定义的info&给x,y赋值然后把此对象传给powershell脚本,,参数标识写做arg&折叠展开C# 代码&
1. static void Main(string[] args)
List&string& ps = new List&string&();
ps.Add(&Set-ExecutionPolicy RemoteSigned&);//先执行启动安全策略,,使系统可以执行powershell脚本文件
string pspath = System.bine(Environment.CurrentDirectory,&ps.ps1&);
ps.Add(pspath);// 执行脚本文件
info psobj = new info();
psobj.x = 20;
psobj.y = 10;
BaseCommon.PSParam par=new BaseCommon.PSParam();
par.Key=&arg&;
par.Value=
BaseCommon.PowerShell.RunScript(ps, new List&BaseCommon.PSParam&() { par });
Console.WriteLine(psobj.x + & + & + psobj.y + & = & + psobj.z);
Console.ReadLine();
} & &接下来就看写一个简单的powershell脚本来操作.net实例了&&
1. $a=$arg.x
2. $b=$arg.y
3. $arg.z=$a+$b & &其中$arg就表示上面注入的psobj对象。。标识为arg&把此脚本存在此程序的bin\debug目录下。文件名为:ps.ps1,,就可以执行程 序看结果:&10+20=30&此结果由powershell脚本返回源码下载:/Cts/1193.shtml------回答---------------其他回答(50分)---------帮顶了 没有看懂------回答---------------其他回答(50分)---------
帮顶了 没有看懂
相关资料:|||||||C#调用powershell相互操作来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 powershell脚本编写 的文章

 

随机推荐