转至: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("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能干什么?的更多相关文章

  1. powershell入门教程-v0.3版

    powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia ...

  2. 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...

  3. 【转】PowerShell入门(十):使用配置文件

    转至:http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html 在命令行中定义别名.变量和函数,只是将它们添加在 ...

  4. Azure PowerShell (1) PowerShell入门

    <Windows Azure Platform 系列文章目录> Update: 2016-01-11 笔者文档主要都是用Azure PowerShell 0.x版本来实现的,比如0.98版 ...

  5. PowerShell入门学习

    一.概要 Powershell是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境. powershell需要.NET环境的支持,同时支持.NET对象.之所以将Powershell ...

  6. 初识powershell、nuget powershell 调试

    初识powershell.nuget powershell 调试 补充 此文仅当做powershell的初步认识体验,关于nuget包里此脚本的使用官方已在vs2017停止支持,请看此文文末 前言 老 ...

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

    PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量 ...

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

    一.Azure PowerShell部署   1.使用 PowerShellGet 在 Windows 上安装 Azure PowerShell 从 Azure PowerShell 版本 6.0 开 ...

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

    原文链接:http://www.cnblogs.com/ceachy/archive/2013/01/30/WhatCanPowerShellDo.html PowerShell能干什么呢?就像序言中 ...

随机推荐

  1. 部署node程序并维持正常运行时间

    12.2部署的基础知识 假定你创建了一个想要展示的Web程序,或者创建了一个商业应用,在把它放到生产环境中之前需要测试一下.你很可能会从一个简单的部署开始,然后再做些工作让它的正常运行时间和性能达到最 ...

  2. 二分查找算法(JAVA)

    1.二分查找又称折半查找,它是一种效率较高的查找方法. 2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位 ...

  3. JAVA 线程同步异步简单实例

    package test; public class testThread { public static void main(String[] args) { Example example = n ...

  4. centos下安装mysql遇到的问题

    我前边遇到的坎,竟然和这篇百度经验惊人的相似,他帮我大忙了,十分感谢作者啊,连接双手奉上http://jingyan.baidu.com/article/ce436649fec8533773afd38 ...

  5. sqlmap 1.0.21 tamper 总结

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. mysql sql注入

    防止SQL注入,我们需要注意以下几个要点: 1.永远不要信任用户的输入.对用户的输入进行校验,可以通过正则表达式,或限制长度:对单引号和 双"-"进行转换等. 2.永远不要使用动态 ...

  7. 云计算仿真软件Cloudsim介绍以及类的功能介绍

    一·云计算的介绍 云计算仿真软件,称为CloudSim.它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型 ...

  8. Git分布式项目管理 入门到学会

    Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库,英文名reposi ...

  9. 服务器租用中网络ping值过高的原因

    其实在网络ping值过程中常常会有很多情况影响这个ping值问题,包括丢包现象,不稳定等等.究竟ping值的大小传输速度与哪些问题有关呢?是什么原因会影响他的速度呢?16年服务器租用运营经验的上市ID ...

  10. 在 Django 模板中遍历复杂数据结构的关键是句点字符

    在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...