概述
PowerShell入门
前言
PowerShell这东西发布时间也不算短了,可是给我的感觉一直不冷不热的。博主是上了大学才接触的编程领域,到了大二才知道有这个东西的存在,之前看的博客、新闻基本没有提到的。16年下半年,微软宣布PowerShell开源,这才陆陆续续有看到相关的报道。
之前有一次想着:既然是微软的东西,应该不差吧。然后试着用了一下,发现有些复杂,不是当时的水平可以吃透的,遂放弃。直到最近想充实一下自己的技术栈,才重新拾起这项技术。然后发现这玩意其实意外地好用…
强烈推荐使用Windows系统的读者把默认的命令行程序改为PowerShell,这样可以使用Shift+鼠标右键的方式在特定目录快速启动PowerShell。
变量
PowerShell里面定义变量的方法比较复杂,基本规则如下:
- 变量以$符号开头
- 变量名可以包含数字、字母和下划线,数字可以作为变量的第一个字符(不包括$符)
- 无需指定类型
- 大小写不敏感
> $hello = "Hello world!"
> $hello
Hello world!
> $HELLO
Hello world!
> $1 = "One"
> $1
One
另外,如果变量名里面有特殊符号,可以使用{花括号}将变量名包含起来,以免造成混乱。
在变量名中使用引号:
> $"s" = "s"
$s : 无法将“$s”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ $"s" = "s"
+ ~~~~
+ CategoryInfo : ObjectNotFound: ($s:String) [], CommandNotFoundE
xception
+ FullyQualifiedErrorId : CommandNotFoundException
> ${"s"} = "s"
> ${"s"}
s
在变量名中使用$符号:
> ${$ is dollar} = "DOLLAR"
> ${$ is dollar}
DOLLAR
赋值
因为PowerShell是面向对象的,所以你可以用=符号给变量赋值任何东西,包括cmdlet。
> $ls = Get-ChildItem
> $ls
目录: Desktoppstest
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2017/3/17 15:55 203 csv.md
-a---- 2017/3/23 8:49 5 hello.txt
-a---- 2017/3/23 8:50 14 helloutf.txt
-a---- 2017/3/21 20:27 331 testtb.py
可以一次给多个变量赋同一个值$a = $b = 1
,但是如果用$a, $b = 1
会导致$b无值。
PowerShell还支持类似Python元组的交换赋值:
> $a = 1
> $b = 2
> $a, $b = $b, $a
> $a
2
> $b
1
算术运算
PowerShell支持的算术运算符包括+(加) -(减) *(乘) /(除) %(模)。支持0x开头的十六进制数字。支持以KB MB GB TB PB结尾的字节数运算。
注意:PowerShell中的整数相除不会舍去小数部分。
> 1mb/1kb
1024
> 10 -eq 0xa
True
> 3/2
1.5
另外,PowerShell也支持++、–、+=、-=、*=、/=、%=这类运算符。
类型转换
PowerShell中有两种方式可以实现类型转换。一种是通过直接在值或者变量前加上[类型],另一种是通过-as运算符实现类型转换。
在PowerShell中,0、空字符串”“、空数组@()、空哈希表@{}、$null等值会被转换为False。
> [bool]0
False
> 0 -as [bool]
False
数组
PowerShell中用逗号分隔不同的值创建数组。数组中可以包含不同类型的值。可以使用变量名.Count
或者变量名.Length
的形式获取数组长度。
> $arr = 1, "two", 3
> $arr
1
two
3
当数组为连续数字数组时,可以使用..符号快捷创建。
> $arr = 1..5
> $arr
1
2
3
4
5
创建空数组时可以使用@()
,创建只有一个元素的数组在唯一的元素前加上逗号。(否则会被解释成普通变量)
> $arr = @()
> $arr.Count
0
> $arr = ,"just one"
> $arr.Length
1
注释
PowerShell的注释分为单行注释和多行注释。单行注释使用#符号,多行注释使用一对<#和#>符号包含。
总结
本篇主要介绍一下PowerShell的一些基础操作,有了这些,你就可以用PowerShell命令行做一些快捷的计算了(比如数学计算、内存计算等)。博主后面会逐步地更新自己的PowerShell学习笔记,下一篇的内容目前还在构思中。
PowerShell既是一个命令行shell,又是一门语言。它有独立的语法,独立的包管理工具,独立的模块,而且有详细而且齐全的文档。PowerShell对于自有的东西,有着非常强的内在统一性。(这个后面会详述)
PowerShell为了兼容不同平台开发人员的习惯,还引入了很多Alias,光是移动位置这一操作就可以用cd、chdir、sl、Set-Location四种不同的命令达到目的。这是一个说不清楚算不算缺点的特性,好处是照顾的不同人的使用习惯,坏处是这反而破坏了这门语言的内在统一。
总之,PowerShell尽管还有不少缺陷,而且难以学懂,但确实是一个不错的工具。值得一学!
我的其他PowerShell入门相关文章:
[PowerShell入门]关系运算和逻辑运算
[PowerShell入门]选择结构和循环结构
后记
我一直对微软的东西抱有极高的热情。光Windows Phone系统的手机就收藏了好几台,有诺基亚的925、635、830,还有HTC的8s,之前大一时候还收破烂买了一台海信的NANA。平板则入了SurfaceRT。前几个月又入了台SurfaceBook。
在我的意识里,微软出品基本就代表了精品。很多人说苹果出品必属精品,可是我不这么认为,苹果的产品虽然精致,但是每次看苹果的新品内心都基本毫无波澜。不过其实都是个人的选择罢了。
说了那么多没用的,只是想表达一种我对于“微软出品”的情感。从Windows Phone到Cotana到Windows 10,从Surface到SurfaceBook到SurfaceStudio,从VisualStudio到VisualStudioCode,从C#到F#到TypeScript到PowerShell,微软每次都能给我带来惊喜。
每次都会让我大喊:“卧槽!吊!”,这就是微软。而我学习PowerShell,学习.NET的脚步也会一直持续下去。
参考资料:
pstips
PowerShell单行注释、多行注释、块注释的方法
pstips是国内的一个专注于PowerShell技术分享的博客,里面有许多优秀的PowerShell教程和资料,有兴趣的读者可以去看一下。
感谢以上的内容提供者!
最后
以上就是壮观裙子为你收集整理的[PowerShell入门]变量、赋值、算术运算、类型转换、数组、注释PowerShell入门的全部内容,希望文章能够帮你解决[PowerShell入门]变量、赋值、算术运算、类型转换、数组、注释PowerShell入门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复