PowerShell入门(一):PowerShell能干什么?

系统 Windows
PowerShell能干什么呢?PowerShell首先是个Shell,定义好了一堆命令与操作系统,特别是与文件系统交互,能够启动应用程序,甚至操纵应用程序;第二,PowerShell允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质;第三,PowerShell能够能够充分利用.Net类型和COM对象,来简单地与各种系统交互,完成各种复杂的、自动化的操作。

一、与文件系统交互、运行应用程序

  就像在Dos中一样,在PowerShell的交互界面上键入"dir"并回车,会显示当前文件夹下的子文件夹和文件信息。

 

 

?
PS D:\Projects\Practise\PowerShell> dir
Directory: D:\Projects\Practise\PowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/23/2013 12:35 PM d1
d---- 1/23/2013 12:35 PM d2
-a--- 1/21/2013 8:38 PM 36314 alias.tx
-a--- 1/21/2013 8:32 PM 241530 cmdlets.
-a--- 1/18/2013 10:18 AM 888 errors.t

  像这样的命令很多,比如echo "Hello", cd ..等等。从这里看来它就是一个命令行,实现了原来命令行的功能。但PowerShell是命令行的加强版吗,是命令行的超集吗?这个真不是,以后会专门说这个问题。

  就像在命令行里运行应用程序一样,可以在PowerShell的交互窗口中运行应用程序,如下:

?
PS C:\Users\v-lukez> notepad
PS C:\Users\v-lukez>
如果想更好地控制应用程序,可以使用start命令,如下:
?
PS C:\Users\v-lukez> start notepad -WindowStyle Maximized
PS C:\Users\v-lukez>

以上结果可以实现Notepad窗口的最大化。其实类似的命令还有很多,而且更多的参数意味着更精细地控制。

  二、创建脚本

  任务的自动化是以程序文件或者可执行脚本文件为基础的,PowerShell也支持将命令列表做成脚本文件来执行。以下是Hello.ps1脚本文件的内容:

?
$a = "Hello"
$a
echo $a > a.txt
dir a.txt
Hello.ps1脚本文件的执行情况结果如下:
?
PS E:\> D:\Projects\Practise\PowerShell\Hello.ps1
Hello
Directory: E:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 1/30/2013 4:56 PM 16 a.txt

你可能发现了,PowerShell脚本文件是以.PS1为扩展名的。以上这个脚本非常简单:先定义了一个变量,然后输出这个变量的结果,再将这个变量的值写入文件a.txt,最后输出这个文件的属性信息。仅从这一点看,PowerShell脚本很像Batch文件。但是实际上,PowerShell可以做得更多。

  PowerShell脚本支持自定义函数,就像我们在编程语言中做得那样。funcDemo.ps1给出了一个在PowerShell脚本中编写函数的示例:

?
#funcDemo.ps1
function SayHello ($name)
{
echo "hello $name"
}
SayHello "Luke"

脚本的运行结果是“Hello Luke”。

此外,关于PowerShell脚本内部语句的运行顺序,这里要做个简单说明:除了函数定义,脚本中的命令或者函数调用(其实也相当于执行命令)会顺序执行;函数中的语句只有在函数被调用的时候才会被执行。

  三、利用.Net类型和COM对象

  能够利用.Net类型和COM对象是PowerShell的最大特点,这让PowerShell能够最大限度的利用现有资源,并且很容易把.Net和COM程序员招徕到自己麾下。

  简单类型:

?
[int]$a = 10
[String]$b = 10
  .Net类型
?
$Message = new-object Net.Mail.MailMessage("me@source.com","you@destination.com", "Subject", <br>  "Here is some email")
  COM对象
?
$myWord = new-object -comobject Word.Application

  创建了.Net或者COM的对象以后,就可以利用这些对象的属性和方法,来完成更加复杂的操作。

  作为本篇结束,用一句话总结,PowerShell吃得很少,干活很多,是Windows管理员日常必备的工具之一。

【编辑推荐】

 

  1. PowerShell与.NET框架之间的点连接
  2. 利用PowerShell缩短SharePoint备份时间
  3. PowerShell函数的基本指南与特性
  4. 如何使用PowerShell管理微软Hyper-V

 

【责任编辑:冰凝儿 TEL:(010)68476606】

责任编辑:冰凝儿 来源: 比特网
相关推荐

2022-12-02 14:57:15

物联网物联网平台

2023-10-07 14:51:46

物联网物联网平台

2013-02-18 08:31:30

powershell

2018-08-30 17:14:56

2019-08-09 16:01:18

Hadoop数据库

2014-03-07 10:46:49

编程语言趣味

2019-04-22 10:08:52

NginxApacheWEB服务器

2020-07-08 13:38:10

NginxApache服务器

2013-02-18 08:36:51

powershell

2013-08-08 09:55:20

私有云DevOps方法虚拟机

2013-02-18 08:34:45

powershell

2022-08-08 07:03:31

Docker场景Registry

2013-02-21 17:54:12

PowerShell入PowerShell命

2018-05-23 10:43:42

5G无限容量远程操作

2013-02-28 11:18:23

PowerShell入远程操作

2010-08-30 09:58:56

超算高科技

2017-08-22 10:49:28

DNA存储电影

2018-07-24 10:18:08

编程语言PythonPHP

2023-09-05 07:04:51

PowerShell运维

2023-12-20 07:12:00

PowerShellCmdletNamed类型
点赞
收藏

51CTO技术栈公众号