2. 三种运行Powershell代码的方法

这里我们将简单的向你介绍如何运行Powershell命令的方法。
你大概有三种途径,第一,复制其他人的做好的例子,把这些代码复制到你的Powershell窗口里,这种是最省时的。第二:创建Cmdlets (我的最爱);第三,最简单, 直接在Powershell命令行里输入
方法一:复制和粘贴(最快)
下面就是教我们如何复制和粘贴Powershell语句到命令行里面。
  • · 启动Windows Powershell
  • · 复制所有代码到内存(就是右键复制)
  • · 右键点击Powershell图标clip_p_w_picpath001
  • · 编辑--〉粘贴(如下图)
  • · 按“回车”来执行代码
p_w_picpath
执行Powershell命令的试验小白鼠
因为我们的目标是学习一项技术,所以练习的代码就无所谓了。很多人使用“Hello World”作为他们的试验小白鼠。但是我偏向选择一个真正的实例,比如,我们这边有一个CMDLET 可以让我们知道正在运行的进程,并且把他们按照公司名称进行分组。
进一步的要求是,我要把这些数据都保存在processcompany.txt文件里面。
实例1:列出运行在你电脑上的进程
# PowerShell cmdlet to group Processes by company
$Path = "D:\PowerShell\ProcessCompany.txt"
$ProSvc = get-Process |sort company |ft -groupby company
$ProSvc
# $ProSvc | out-file $Path

结果:你可以看到以公司名称来分组的进程清单

方法二: Cmdlet (最佳)
由于cmdlet能够把你的代码永久的保存到一个文本文件里面,所以使用cmdlet方法相对复制粘贴而言更进了一步。
创建cmdlets永远是我的最爱,它是我们不断对代码进行改进再重新运行的完美方案。而且,cmdlet能够保存所有我所做的记录。
  • · 复制以上测试代码到一个文本文件里面
  • · 保存为PS1格式的文件,比如:addcontenta.ps1
  • · 在Powershell里面,浏览到你所保存ps1文件的目录里面,这里是D:\powershell\files, 看下图
  • · 运行下面命令: .\addcontenta
clip_p_w_picpath002

我的小心得:
对我每个Powershell的项目,我都会启动Windows浏览器并且创建一个子目录。一旦我的cmdlets起作用了,我就把他存放在我的子文件夹里面。然后我再把这个文件另存为新文件,我再在新文件上面进行调试以提高原版本。这样修改几次后,我会创建一序列的cmdlets命令,比如:addcontenta, addcontentz, addcontenty.等等。
我使用cmdlet 技术有两个原因,在我的代码遇到难题过不去时,我经常会想“如果我能够回到我的脚本能够正常工作时,那该多好!”由于我们保存了这么多的中间件,我能够很快的返回到以前能工作时的状态;第二,使用cmdlet意味着,即使我有好几个月没有继续我的研究,我也能够马上从我离开的时候开始,而不用重新开始。

方法三:在命令行里面输入(最简单的方法)
因为Powershell命令如此高效,并且很短,因此推荐你直接输入命令行业不是件坏事。为测试方法三,我这边有另外一个例子,你可以输入下面命令:
get-childitem c:\windows

确实,如果你是Powershell新手,没有什么比直接输入命令的感觉更为深刻。在你输入命令的时候,你肯定可以知道Powershell 的语法(动词-名词)。另外一个好处就是,你可以明白什么时候使用减号(-),什么时候使用空格。
下面有三个例子:

get-Eventlog -list
  (正确:在-list之前是空格)

get-help eventlog
(正确,在Eventlog中间没有空格) 


get-Eventlog system | get-Member
  (正确,在动-名中间没有空格)

这里经常有人会输错命令,即使那些有经验的Powershell脚本专家也是这样。对我个人而言,我偏向于创建cmdlets, 但是我也经常输入命令,尤其是在我需要某一个对象的特定属性的时候,比如
abc-xyz |gm
(gm 是 get-Member别名).
p_w_picpath

总结:如何执行Powershell命令
一般而言,执行Powershell至少会有两种办法,一种是复制粘贴,这种最省时;另外一种是使用cmdlet方法,并且从长期而言,掌握cmdlet是最好的办法。