PowerShell学习笔记(1)-基础

本文是PowerShell学习笔记的第一部分,介绍了PowerShell的基础知识,包括命令概念与术语、命令分类、别名与弹性语法、类型处理、操作符与表达式、流控制语句等内容。讲解了PowerShell中的cmdlets、函数、脚本、别名、语句解析、类型转换和流控制结构等核心概念。
摘要由CSDN通过智能技术生成

PowerShell学习笔记(1):基础


  前段时间在知乎上得知Windows下的一款强大的命令行工具PowerShell(原谅我刚刚得知)。 其强大的功能,令人惊叹,兴趣盎然,这么优秀的工具值得我去学习、了解, 虽然我并不是程序猿。我的测试练习环境:win7 PowerShell v1.0


基础内容


命令的概念与术语

  基本命令形式如下:
command -parameter1 -parameter2 arg1 arg2
- command:命令名称
- parameter1:开关参数
- parameter2 arg1:带参数变量的参数
- arg2:位置参数

例:Write-Output -InputObject HelloWorld
  dir -Recurse -Filter *.ps1 D:\Test,其中开关参数-Recuse指定dir命令显示指定目录及其子目录下的所有文件,-Filter *.ps1过滤出后缀为ps1的文件。

命令分类

  PowerShell中的命令可以分为四类:cmdlets、functions、scripts、native Win32 executables。

cmdlet C#源码例子:

[Cmdlet("Write", "InputObject")]
public class MyWriteInputObjectCmdlet : Cmdlet
{
    [Parameter]
    public string Parameter1;
    [Parameter(Mandatory = true, ValueFromPipeline=true)]
    public string InputObject;
    protected override void ProcessRecord()
    {
        if (Parameter1 != null)
            WriteObject(Parameter1 + ":" + InputObject);
        else
            WriteObject(InputObject);
    }
}

shell函数命令源码例子:

function Write-InputObject
{
    param($Parameter1)
    process
    {
        if ($Parameter1)
        {
            "$Parameter1: $_"
        }
        else
        {
            "$_"
        }
    }
}

shell脚本命令源码例子:

param($Parameter1)
process
{
    if ($Parameter1)
    {
        "$Parameter1:$_"
    }
    else
    {
        "$_"
    }
}

native Win32 executables也被称作为本地命令,是能被操作系统执行的外部程序。

别名与弹性语法

  PowerShell中实现了大量的预定义别名,这些别名可以分为两个基本的类别:transitional别名和convenience别名。使用Get-Command命令可以查看别名的具体的定义。

PowerShell语句解析

  双引号、单引号与反引号之间的区别。

  转义序列,如下:

    `n      换行         
    `r      回车     
    `t      水平制表符
    `a      警铃
    `b      退格
    `'      单引号
    `"      双引号   
    '0      空
    ``      单反引号

  表达式模式与命令模式。在表达式模式中,字符串必须由引号括起,数字始终解析为数字等等。在命令模式中,数字被视为数字,但是其它的参数则被视为字符串(除非参数以$,@,’,”,(开头,当以这些特殊字符开头时,其后的参数被解析为值表达式)。
  模式解析例子,如下:

    2+2     表达式模式,结果是4.
    write-output 2+2    命令模式,结果是 “2+2”.
    $a=2+2  表达式模式,变量$a被赋值为值4
    write-output (2+2)  表达式模式,2+2被作为表达式计算得到值4,然后作为参数传给write-output
    write-output $a     表达式模式,参数前有特殊字符
    write-output $a.Equals(4)   表达式模式,$a.Equals(4)计算得到Boolean值True
    write-output $a/dir.txt 命令模式,首先参数被计算为4/dir.txt,然后解释器发现并不是一个合法的表达式,然后将其转换为命令模式

  有两种语句终止方式:一种是以分号”;”终止,还有一种是以换行符终止。

  管线是由管线操作符”|”分割的一系列命令,如:

    dir -recurse -filter *.cpp | format-table name,length     

  格式化与输出。可以通过$PSHOME查看所安装的默认格式数据库的所在路径。


类型处理


基本类型与字面值

  PowerShell中的字面值:strings,numbers,array,dictionaries,hashtables。
  PowerShell中,字符串是一个16位的Unicode字符序列,其直接由.NET System.String类型直接实现。单引号、双引号字符串,例:"Double quoted string""Single quoted string"。here-strings:以@<quote><newline>开头,并以<quote><newline>@结尾。
  数值字面值。PowerShell支持所有基本的.NET数值类型并可在需要时完成不同类型之间的转换。数值字面值如下:

数值字面值 .NET全类型名 短类型名
1 System.Int32 [int]
10000000 System.Int64 [long]
1.1 S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值