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

原文链接:http://www.cnblogs.com/ceachy/archive/2013/01/30/WhatCanPowerShellDo.html 

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("[email protected]","[email protected]", "Subject", <br>  "Here is some email")

 COM对象

$myWord = new-object -comobject Word.Application

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

  作为本篇结束,用一句话总结,PowerShell吃得很少,干活很多,是Windows管理员日常必备的工具之一。走过路过,千万不要错过啊。。。

时间: 2024-10-23 22:51:05

PowerShell入门(一):PowerShell能干什么?的相关文章

powershell入门教程-v0.3版

powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia/ https://www.pstips.net/powershell-online-tutorials http://www.cnblogs.com/volcanol/tag/PowerShell/ 问:如何开启powershell脚本运行权限?答:echo 下面代码,在管理员权限cmd中运行,在

Azure PowerShell (1) PowerShell入门

<Windows Azure Platform 系列文章目录> 2014-09-30:把之前关于Azure PowerShell的内容重新整理了一下. 我们知道,我们可以通过以下三种方式管理Windows Azure: Azure Management Portal,特点是简单直观 Azure REST API,特点是可以通过调用REST API来实现云端的开发 Azure PowerShell,特点是可以批量操作 大家可以想象一下,如何在短时间内需要申请200个虚拟机,使用Azure Man

PowerShell入门学习

一.概要 Powershell是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境. powershell需要.NET环境的支持,同时支持.NET对象.之所以将Powershell 定位为Power,是因为它完全支持对象,且其可读性,易用性,可以位居当前所有shell之首 powershell有四个版本,分别为1.0,2.0,3.0 ,4.0 在window7或者Windows Server 2008中,内置有PowerShell 2.0,可以升级为3.0,4.0. 在Win

初识powershell、nuget powershell 调试

初识powershell.nuget powershell 调试 前言 老早就听说powershell很牛逼,但是没真正用过,这两天刚好用到,顺便写一下有关的,可能以后用得到的东西.本来想记一下这次使用过程中用到的一些操作的,就是这么巧,发现了个很不错的教程网站,于是我就可以偷懒了,哈哈. 相关资料 非官方在线教程网站 www.pstips.net 官方文档 入门 基本指南 操作系统要求 Windows PowerShell ISE 运行远程命令 在nuget安装包的时候进行powershell

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件来达到配置shell环境的目的.也许这也是某些人诟病cmd shell功能不强的原因之一. 而目前这种状况在windows powershell中得到了改善,可以说PS中提供的自定义环境的功能

Windows 上安装 Azure PowerShell及Azure PowerShell部署虚拟机

一.Azure PowerShell部署 1.使用 PowerShellGet 在 Windows 上安装 Azure PowerShell 从 Azure PowerShell 版本 6.0 开始,Azure PowerShell 需要 PowerShell 版本 5.0. 若要查看在计算机上运行的 PowerShell 的版本,运行以下命令: #$PSVersionTable.PSVersion 2.Windows PowerShell升级 https://docs.microsoft.co

powershell入门

PowerShell中使用Get-Date获取日期时间并格式化输出 https://www.jb51.net/article/53282.htm 其他深入学习链接 https://www.jb51.net/article/63887.htmhttps://www.jb51.net/list/list_234_1.htm ## 在PowerShell中有一个Get-Date的cmdlet,使用它可以直接返回当前的日期和时间.使用-Format参数可以返回当前的年.月.日.时.分.秒等. yyyy

Azure PowerShell (10) 使用PowerShell导出订阅下所有的Azure VM和Cloud Service的高可用情况

<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China服务. 该脚本下载地址在http://files.cnblogs.com/files/threestone/SingleInstanceVM.rar 运行前提: 1.我们需要一个Azure China的账户 2.在Azure China账户下部署了若干虚拟机和Cloud Service 3.我们还需要下载Azure PowerShell 如何运行该PowerShell 1.首先

3分钟带你了解PowerShell发展历程——PowerShell各版本资料整理

本文带你了解PowerShell发展历程,顺便整理了一点资料,方便大家查询. Windows PowerShell? 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计. 在 .NET Framework 的基础上构建的 Windows PowerShell 可帮助 IT 专业人士和高级用户控制和自动执行 Windows 操作系统以及在 Windows 上运行的应用程序的管理. UNIX 系统一直有着功能强大的脚本(shell),Windows PowerShell 的诞生就是要提供功