Windows PowerShell基础教程(1)——Windows PowerShell 简介

这篇具有很好参考价值的文章主要介绍了Windows PowerShell基础教程(1)——Windows PowerShell 简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Windows PowerShell基础教程(1)——Windows PowerShell 简介            
PowerShell 开发代号为Monad,  是支持 Windows XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括 Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以文本格式向用户显示结果。多年以来,许多文本处理实用工具程序,如sed、AWK 和 PERL,都已逐渐发展为支持这种交互模式。

 这些外壳程序也会提供内置于外壳程序中并在外壳程序处理器中执行的命令,例如KSH 中的 typeset 命令和以及 Cmd.exe 中的 dir 命令。在大多数外壳程序中,由于内置命令数量少,从而导致许多实用工具程序应运而生。

针对这一点,Windows PowerShell 有不同的做法。

<!---->◆ <!---->Windows PowerShell 并不处理文本,而是处理以.NET平台为基础的对象;

<!---->◆Windows PowerShell 附带了数量庞大的内置命令集和一致的接口;

<!---->◆对于各个工具,全部的外壳程序命令都使用相同的命令剖析器,而非使用不同的剖析器,这项特点会使你更容易学会每种命令的使用方式。

其中最棒的就是你完全不需要舍弃已使用习惯的工具,你可以继续在 Windows PowerShell 中使用诸如Net、SC 和 Reg.exe 等传统的 Windows 工具。

Windows PowerShell Cmdlet
Cmdlet (发音如 “command-let”) 是指在 Windows PowerShell 中用来操作对象的单一功能命令。你可以依据其名称格式来加以辨识 Cmdlet -- 以破折号 (-) 分隔的动词和名词,例如Get-Help、Get-Process 和 Start-Service。

在传统的外壳程序中,命令是极为简单 (例如 attrib.exe) 到极为复杂 (例如 netsh.exe) 范围内的可执行程序。

在 Windows PowerShell 中,大多数Cmdlet 都相当简单,而且设计成与其他 Cmdlet 结合使用。例如,"get" Cmdlet 只提取数据,"set" Cmdlet 只创建或修改数据,"format" Cmdlet 只格式化数据,而 "out" Cmdlet 只将输出导向到指定的目的地。每种 Cmdlet 都具备可在输入下列命令时加以显示的说明文件:

get-help <cmdlet 名称> -detailed

Cmdlet 说明文件包括了该 Cmdlet 的描述、命令语法、参数的描述以及示范该 Cmdlet 的使用范例。

全新的脚本语言
Windows PowerShell 由于下列原因使用其特有的语言,而不沿用既有的任何语言。

<!---->◆Windows PowerShell 必须拥有可管理.NET对象的语言。

<!---->◆这种语言必须提供使用 Cmdlet 的一致环境。

<!---->◆这种语言必须支持复杂的工作,而且不能让简单工作变得复杂。

<!---->◆这种语言必须与进行 .NET 程序设计时所使用的高级语言 (例如 C#) 达成一致性。


Windows 命令和实用工具程序
你可以在 Windows PowerShell 中执行 Windows 命令行程序,而且可以在外壳程序中启动具有图形用户界面的 Windows 程序,例如记事本和计算器。你也可以提取程序所产生的文本,然后用与在使用 Cmd.exe 时的相同方式在此外壳程序中使用该段文本。

处理对象
也许开始时你可能并未察觉到,当你在 Windows PowerShell 中执行工作时,实际上是在使用 .NET 对象。随着你的经验的不断累积,以及对象处理的效果更加明显,你将发现其实自己是在使用对象,甚至最后以对象为思考依据。

从技术上来看,.NET 对象是由数据以及与该数据关联的作业所组成的 .NET 类型例项。不过,你可以将对象当作拥有属性 (类似特性) 和方法 (可以针对对象执行的动作) 的数据实体。

例如,当你在 Windows PowerShell 中取得服务时,实际上你所取得的是代表该项服务的对象。当你在查看服务的相关信息时,你是在查看其服务对象的属性。同样地,当你启动服务时,也就是当你将该项服务的 Status 属性修改为 "started" 时,你正在使用该项服务对象的方法。

所有相同类型的对象都会具有相同的属性和方法,不过,对象的每个实例属性值可以各不相同。例如,每个服务对象都具有 Name 和 Status 属性。不过,各个服务可以拥有不同的名称和状态。

了解这些概念之后,这些对象就不难理解。若要找出 Cmdlet 会取得哪种对象类型,请使用管道运算符 (|) 将 "get" 命令的结果传送到Get-Member 命令。例如,下列命令会将 Get-Service 命令所提取的对象传送Get-Member。

get-service | get-member

Get-Member 会显示该服务对象的相关信息,其中包括对象的Typename,以及包含此对象属性和方法的列表。

   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition

----                      ----------    ----------

Name                      AliasProperty Name = ServiceName

add_Disposed              Method        System.Void add_Disposed(EventHandler value)

Close                     Method        System.Void Close()

Continue                  Method        System.Void Continue()

如需取得对象类型的相关信息,请复制和粘贴 Typename (例如,System.ServiceProcess.ServiceController) 到 MSDN 中。当找到类型时,你就可以读取相关 MSDN 子主题来认识以该类型为基础的对象的属性和方法,例如出现在 Windows PowerShell 中的对象。

若要找出特定对象的所有属性值,请使用管道运算符 (|) 将 "get" 命令的结果传送到 Format-List 或是 Format-Table 命令。请配合所有 (*) 的值来使用这些 Format cmdlet 的 Property 参数。例如,若要找出系统中 Schedule 服务的所有属性,请输入:

get-service schedule | format-list -property

下面内容显示结果范例。

Name                : Schedule

CanPauseAndContinue : True

CanShutdown         : True

CanStop             : True

DisplayName         : Task Scheduler

DependentServices   : {}

MachineName         : .

ServiceName         : Schedule

ServicesDependedOn  : {RpcSs}

ServiceHandle       : SafeServiceHandle

Status              : Running

ServiceType         : Win32ShareProcess

Site                :

Container           :

如果是第一次接触 Windows PowerShell,你还不需要熟知对象的每个细节,但是要对这个概念略有印象,因为你很快就能够应用这类对象来发挥其最大效益。

对象管道
使用对象的最大优点就是可以让命令更容易通过管道进行传递,也就是将某个命令的输出传递为另一个命令的输入。这种通信经常必须通过字符串操作将某种格式的输出转换成另一种格式,以及移除标题和栏标题。

Windows PowerShell 会提供以对象为基础 (而非以文本) 的全新互动模式,负责接收对象的 cmdlet,可以直接处理对象的属性和方法,而不需要进行任何转换或操作。用户可以依据名称引用对象的属性和方法,而不是计算数据在输出中的位置。

在下面的范例中,IpConfig 命令的结果会传递给 Findstr 命令。管道运算符 (|) 会将位于此命令左边的结果传递到命令的右边。在 Microsoft? Windows? PowerShell 中,你并不需要操作字符串或计算数据位移。

PS> ipconfig | findstr "Address"

        IP Address. . . . . . . . . . . . : 172.28.21.5

        IP Address. . . . . . . . . . . . : 172.30.160.225文章来源地址https://www.toymoban.com/news/detail-689554.html

到了这里,关于Windows PowerShell基础教程(1)——Windows PowerShell 简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • powershell中文乱码 windows cmd

    问题的起因是windoes默认字符编码是GBK,而目前通用字符集使用的是UTF-8 关于字符集的问题欢迎移架到 字符集 最终解决方案 为使用最新的windows特性,将默认字符集切换到UTF-8 方法1. 进入控制面板 - 时钟和区域 - 区域 - 管理 - 更改系统区域设置 - 勾选Beta版:使用 UnicodeUTF-8提供全

    2024年02月02日
    浏览(34)
  • 用powershell代码安装Windows软件

    最近由于工作原因,经常需要接触到服务器,开始的时候我用的cmd命令栏,后来改了注意换掉到了powershell,建议使用Windows 2012及以上,因为涉及到Windows版本问题。 相信各位很多都有接触过云服务器,没有接触过也没关系,相当多的厂商对新手都比较友好,不仅提供了试用,

    2024年02月12日
    浏览(29)
  • Windows11下PowerShell配置Git

    Windows 11下powershell可以与git结合使用,不用再单独调出git Bash了。 git: https://git-scm.com/download/win 以管理员身份运行PS; 在弹出的窗口里键入: Get-ExecutionPolicy 命令,按enter键; 如果返回“ RemoteSigned ”,则代表已经配置过了;如果没有配置过,则返回“ Restricted ”; 如果已经

    2024年02月03日
    浏览(26)
  • windows使用vim编辑文本powershell

    1、安装 chocolatey 包 以管理员身份打开 PowerShell 进行安装 2、管理员身份打开 PowerShell 并使用 choco 安装 vim 安装后,你可以运行 vim 在 PowerShell 控制台上编辑文本文件 vim .mercurial.ini

    2024年02月10日
    浏览(45)
  • windows server powershell安装iis

    windowser server2016 以管理员身份运行powershell 激活IIS-WebServer 功能并不是单一的,它需要同时安装并激活诸如IIS-WebServerRole 、Web Management Tools、Common HTTPFeatures、 HTTP Logging、 Static Content Compression、 Request 等角色和功能。 如下为激活IIS服务所依赖的关键服务列表,部分服务将在激活

    2023年04月08日
    浏览(27)
  • windows11下PowerShell与Git结合

    Windows 11下powershell可以与git结合使用,不用再单独调出git Bash了。 git: https://git-scm.com/download/win 以管理员身份运行PS; 在弹出的窗口里键入: Get-ExecutionPolicy 命令,按enter键; 如果返回“ RemoteSigned ”,则代表已经配置过了;如果没有配置过,则返回“ Restricted ”; 如果已经

    2024年02月16日
    浏览(24)
  • Windows PowerShell:连接Linux终端小助手

    在研究Quark-n的时候,利用Windows自带的远程桌面连接,实现了在Windows上看到Linux的GUI,但是很快就发现了好多问题,比如想用Tab补全命令的时候,它不灵,只能Shitf+Tab,有悖于传统操作按键,而且GUI有延时,拖动终端时有拖影,图形操作体验很差。为了解决这个问题,便在网上

    2024年02月11日
    浏览(37)
  • Windows PowerShell中成功进入conda虚拟环境

    本人操作系统是Windows10(输入命令cmd或在运运行中输入 winver 查看) 在cmd命令行中大家都很熟悉,很方便进入到指定创建了的虚拟环境中,那么在PowerShell中怎么进入呢? 比如在VSCode中的TERMINAL使用的是PowerShell,有时我们想方便的快速切换环境,因为不同环境,我们安装的包

    2023年04月26日
    浏览(38)
  • windows10下powershell中如何在后台执行python程序

    在windows10本地执行时间较长的程序时,很容易忘记,随手关掉编译器,程序就此中断,造成精神伤害。 如果不管不挂起,不管日志重定向,我要运行的python脚本的命令很简单 现在挂起在后台,需要把原先在控制台显示的一大堆输出,重定向到日志文件中。注意,在win10下不可

    2024年03月09日
    浏览(29)
  • 仅作笔记用:Windows 11 通过 PowerShell 打开 IE 浏览器

    收到一条传闻,说 Windows 11 在 Dev 的版本 25309 里面移除了 VBS 的支持,此改动预计在正式版 23H2 中实装。这导致原有 VBS 方式打开 IE 浏览器的方法失效。 去 Microsoft Learn 上查了一下文档,得知这个 CreateObject 方法在 PowerShell 中也可以使用。那么我们就可以从 PowerShell 中继续使用

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包