[PowerShell入门]变量、赋值、算术运算、类型转换、数组、注释
来源:互联网 发布:知乎中央民族大学舞蹈 编辑:程序博客网 时间:2024/05/16 05:31
PowerShell入门
前言
PowerShell这东西发布时间也不算短了,可是给我的感觉一直不冷不热的。博主是上了大学才接触的编程领域,到了大二才知道有这个东西的存在,之前看的博客、新闻基本没有提到的。16年下半年,微软宣布PowerShell开源,这才陆陆续续有看到相关的报道。
之前有一次想着:既然是微软的东西,应该不差吧。然后试着用了一下,发现有些复杂,不是当时的水平可以吃透的,遂放弃。直到最近想充实一下自己的技术栈,才重新拾起这项技术。然后发现这玩意其实意外地好用…
强烈推荐使用Windows系统的读者把默认的命令行程序改为PowerShell,这样可以使用Shift+鼠标右键的方式在特定目录快速启动PowerShell。
变量
PowerShell里面定义变量的方法比较复杂,基本规则如下:
- 变量以$符号开头
- 变量名可以包含数字、字母和下划线,数字可以作为变量的第一个字符(不包括$符)
- 无需指定类型
- 大小写不敏感
> $hello = "Hello world!"> $helloHello world!> $HELLOHello world!> $1 = "One"> $1One
另外,如果变量名里面有特殊符号,可以使用{花括号}将变量名包含起来,以免造成混乱。
在变量名中使用引号:
> $"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 目录: Desktop\pstestMode 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> $a2> $b1
算术运算
PowerShell支持的算术运算符包括+(加) -(减) *(乘) /(除) %(模)。支持0x开头的十六进制数字。支持以KB MB GB TB PB结尾的字节数运算。
注意:PowerShell中的整数相除不会舍去小数部分。
> 1mb/1kb1024> 10 -eq 0xaTrue> 3/21.5
另外,PowerShell也支持++、–、+=、-=、*=、/=、%=这类运算符。
类型转换
PowerShell中有两种方式可以实现类型转换。一种是通过直接在值或者变量前加上[类型],另一种是通过-as运算符实现类型转换。
在PowerShell中,0、空字符串”“、空数组@()、空哈希表@{}、$null等值会被转换为False。
> [bool]0False> 0 -as [bool]False
数组
PowerShell中用逗号分隔不同的值创建数组。数组中可以包含不同类型的值。可以使用变量名.Count
或者变量名.Length
的形式获取数组长度。
> $arr = 1, "two", 3> $arr1two3
当数组为连续数字数组时,可以使用..符号快捷创建。
> $arr = 1..5> $arr12345
创建空数组时可以使用@()
,创建只有一个元素的数组在唯一的元素前加上逗号。(否则会被解释成普通变量)
> $arr = @()> $arr.Count0> $arr = ,"just one"> $arr.Length1
注释
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入门]变量、赋值、算术运算、类型转换、数组、注释
- javaSE:注释、进制转换、变量和算术运算符
- 变量_类型转换_ 算术运算符_转义字符_赋值和比较运算符_逻辑运算符_位运算符
- 算术类型转换和赋值类型转换
- 数组变量与算术运算
- C++算术类型转换和赋值类型转换
- 1.8 算术类型转换和赋值类型转换
- 算术运算与赋值运算
- 算术运算与赋值运算
- Java赋值、运算符与类型转换
- 运算符重载:赋值、类型转换
- JS程序设计基础:变量,算术、关系、赋值、复合赋值、逻辑、位运算符与表达式
- shell变量算术运算
- Java 变量,数据类型的转换,若干算术运算符
- 变量的赋值和类型转换
- Java study 02day--类型转换与算术运算符
- JAVA学习笔记-转义字符、算术运算符、类型转换
- 03 WebGL 着色器编程语言GLSL ES的变量类型、赋值和类型转换、运算符
- 有什么pdf转换jpg的工具
- nginx配置入门
- 硬盘、内存的关系
- Xcode8 快捷注释失败
- linux shell 启动相关程序
- [PowerShell入门]变量、赋值、算术运算、类型转换、数组、注释
- visual studio 学习
- 在微信里点击拉起APP到特定页面---Apple Universal Link的摸索
- 【面试】实现页面跳转的两种方法
- UIView的layoutSubviews和drawRect方法何时调用
- 浏览器关闭后,Session会话结束了么?
- synchronized二三事4
- C++实现简单的内存池
- 继承 接口实现练习(运动员教练类)