当前位置: 首页 > 编程笔记 >

PowerShell入门教程之PowerShell有什么用?

祁飞扬
2023-03-14
本文向大家介绍PowerShell入门教程之PowerShell有什么用?,包括了PowerShell入门教程之PowerShell有什么用?的使用技巧和注意事项,需要的朋友参考一下

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管理员日常必备的工具之一。走过路过,千万不要错过啊。。。

 

 类似资料:
  • 本文向大家介绍PowerShell入门教程之PowerShell管道介绍,包括了PowerShell入门教程之PowerShell管道介绍的使用技巧和注意事项,需要的朋友参考一下 管道对于Shell来说是个化腐朽为神奇的东西,它极大地提高了在命令行上编程的能力。深入理解并熟练使用管道是PowerShell高手之路的必经阶段。没有管道,我们就不得不通过许多的变量来保存中间结果,虽然这是脚本和其他编译

  • 本文向大家介绍PowerShell入门教程之远程操作运行PowerShell的方法,包括了PowerShell入门教程之远程操作运行PowerShell的方法的使用技巧和注意事项,需要的朋友参考一下 PowerShell远程操作是远程管理的基础,它为集中管理分布式系统提供了又一种可靠、高效的方法。   一般来说PowerShell远程操作依赖于远程处理基础结构,但为数不多的几个自身具有远程处理能力

  • 本文向大家介绍PowerShell入门教程之PowerShell和Cmd命令行的关系?,包括了PowerShell入门教程之PowerShell和Cmd命令行的关系?的使用技巧和注意事项,需要的朋友参考一下 PowerShell是命令行的加强版吗?PowerShell能执行命令行的所有命令吗?PowerShell要替代命令行?这三个问题的答案足以让我们了解PowerShell与Cmd命令行之间的关

  • 本文向大家介绍PowerShell入门教程之快速学习PowerShell的几个方法,包括了PowerShell入门教程之快速学习PowerShell的几个方法的使用技巧和注意事项,需要的朋友参考一下 如何快速地掌握PowerShell呢?总的来说,就是要尽可能多的使用它,就像那句谚语说的:Practice makes perfect。当然这里还有一些原则和方法让我们可以遵循。 有效利用交互式环境

  • 本文向大家介绍PowerShell入门教程之Cmd命令与PowerShell命令相互调用的方法,包括了PowerShell入门教程之Cmd命令与PowerShell命令相互调用的方法的使用技巧和注意事项,需要的朋友参考一下      单独使用一种脚本来完成一项任务是理想的状态,而现实的情况往往是,因为历史原因、或者团队组成,你不得不将多种脚本或者程序组合在一起,来完成某项任务。本文的讨论范围是Cm

  • 本文向大家介绍PowerShell入门教程之函数、脚本、作用域介绍,包括了PowerShell入门教程之函数、脚本、作用域介绍的使用技巧和注意事项,需要的朋友参考一下 脚本所体现的是PowerShell的编程特性,是任务自动化的基础。函数是比脚本粒度更细的代码复用单元,可以定义在命令行中或者脚本中。作用域就是变量和函数的作用范围,是执行上下文的划分。 函数   函数就是命名的命令列表,与一般编程语