PowerShell中定义多个变量并赋值的例子

所谓赋值语句,小编在最早学C语言时就知道那就是“a=1;”。这么多年来,虽然语言在变,但赋值语句基本没变过。但今天在看一串PowerShell代码的时候,这种理念被推翻了。小编看到了多变量同时赋值的语句。

小编看到的语句是这样的:

代码如下:

$a[0],$a[1]=$a[0],$a[1];

大家来猜猜它是什么意思?

其实很好猜,第一眼看上去就像是把$a[0]和$a[1]这两个数组元素颠倒。而事实上的效果也是这样的。难道说这就是两个变量互换值的语句吗?我们知道在传统的编程语言里面,要把两个变量的值交换,至少需要三个语句,还需要一个中间变量的。比如要把a与b的值交换,那么代码应该这样写:

代码如下:

c=a;a=b;b=c;

这里的c是新增加出来的一个变量。这样看来,PowerShell还真TMD强大啊!

小编还异想天开的做了一些尝试,发现原来这个语法不仅仅颠倒两个值那么简单。比如:

代码如下:

PS> $a=1,2,3
PS> $a[0],$a[1],$a[2]=$a[1],$a[2],$a[0];
PS> -join $a
231

看见没有,把数组元素的值,转了一圈。

小编还做了这样一个测试:

代码如下:

PS> $a, $b=1,2
PS> $a
1
PS> $b
2

相当于是对照等号的前后,按顺序逐个赋值。很好理解吧!再看看下面这个:

代码如下:

PS C:\Users\hong> $a, $b=1,2,3
PS C:\Users\hong> $a
1
PS C:\Users\hong> $b
2
3

哈哈,这个有趣了。前面是两个变量,后面是三个值。那PowerShell会把它们怎么办呢。根据结果所示,$a赋值了1,$b被当成了数组,赋值了2和3。

所以小编把这个语法称之为“多变量同时赋值”,就是把多个变量同时赋值,当然赋值中存在一些细节,已经在上面的例子中展示了。

最后有人一定想问,如果变量个数多于值的个数,会是什么样的结果呢?呵呵,看看:

代码如下:

PS C:\Users\hong> $a, $b,$c,$d=1,2,3
PS C:\Users\hong> $d
PS C:\Users\hong>

(0)

相关推荐

  • PowerShell中定义多个变量并赋值的例子

    所谓赋值语句,小编在最早学C语言时就知道那就是"a=1;".这么多年来,虽然语言在变,但赋值语句基本没变过.但今天在看一串PowerShell代码的时候,这种理念被推翻了.小编看到了多变量同时赋值的语句. 小编看到的语句是这样的: 复制代码 代码如下: $a[0],$a[1]=$a[0],$a[1]; 大家来猜猜它是什么意思? 其实很好猜,第一眼看上去就像是把$a[0]和$a[1]这两个数组元素颠倒.而事实上的效果也是这样的.难道说这就是两个变量互换值的语句吗?我们知道在传统的编程语言

  • PowerShell中使用GetType获取变量数据类型

    本文介绍在PowerShell中如何获取变量的数据类型,使用GetType()函数来完成此任务. 首先看一个例子: 复制代码 代码如下: PS C:\Users\zhanghong> $i=1 PS C:\Users\zhanghong> $i.gettype() IsPublic IsSerial Name                                     BaseType -------- -------- ----                          

  • Python3单行定义多个变量或赋值方法

    你甚至可以在一行内将多个值赋值给多个变量 >>> a , b = 45, 54 >>> a 45 >>> b 54 这个技巧用来交换两个数的值非常方便 >>> a, b = b , a >>> a 54 >>> b 45 要明白这是怎么工作的,你需要学习元组(tuple)这个数据类型.我们是用逗号创建元组.在赋值语句的右边我们创建了一个元组,我们称这为元组封装(tuple packing),赋值语句

  • PowerShell中定义多行字符串变量的方法

    本文介绍PowerShell中如何定义一个跨多行的字符串变量,定义多行字符串时使用@"开始,使用"@结束. 有没有遇到这样一种情况,我们想创建一个变量来保存一个跨行的字符串. 是不是对怎么输入很头疼啊?其它编程语言有没有办法我不知道,但在PowerShell中,有一个很简单的办法,那就是使用@字符. 举例如下: 复制代码 代码如下: $str = @" 字符串的第1行 字符串的第2行 -- 字符串的第n行 "@ 注意在"@""之后,不要

  • PowerShell中定义哈希散列(Hash)和调用例子

    所谓哈希变量,是英文单词Hash的音译,专业的叫法是"散列".在我们这里理解哈希变量,它是一个"键值对"的集合,或者说是一本字典. 下面我们使用例子来定义一个哈希变量. 复制代码 代码如下: PS C:\Users\zhanghong> $hash=@{"a"=1; >> "b"="nihao"; >> "c"=Get-Date >> } >

  • PowerShell中简单的自定义函数和调用函数例子

    在PowerShell中是否有函数?PowerShell是否可以自定义函数?PowerShell中如何自定义函数? 在PowerShell中,我们可以使用函数(function)来简化编程开发.在PowerShell中使用function这个关键词来标识一个函数.一个自定义的函数,由function关键词开始,然后用一对大括号来包括起整个函数体的内容. 我们先来看一下简单的PowerShell函数: 复制代码 代码如下: function Test-Function {     Write-Ho

  • PowerShell中使用Get-EventLog读取、筛选系统日志的例子

    本文介绍使用PowerShell读取系统日志,可以按日志名称.日志类型.时间等多个因素进行筛选.PowerShell中提供了一个叫Get-EventLog的cmdlet,使用它可以读取系统日志. 运行一下这个Get-EventLog的cmdlet试一下: 复制代码 代码如下: PS C:\Users\zhanghong> Get-EventLog -LogName System 噢!如果你感觉你被小编害了,cmd窗口一直在滚动个不停,那么按Ctrl+C先把它停下来.然后我解释一下,之所以发生这样

  • PowerShell中使用Like运算符配合通配符查找字符串例子

    本文介绍在PowerShell中使用通配符来查找字符串,和通配符一起使用的是like运算符. 在PowerShell中的通配符是星号(*)和问号(?),这跟DOS系统中是一样的.要使用通配符在字符串中查找,可以使用like运算符.举例如下: "123"是以1开头 复制代码 代码如下: PS C:\Users\splaybow> "123" -like "1*" True "123"是以1开头,3结尾 复制代码 代码如下:

  • Powershell中定义常量的方法

    支持所有版本. 通常变量是可变的,你可以修改他们,除非你使用的是一个常量. 可是这里没有这样的变量但常量它可以被创建,这里创建了一个值为1的常量. 复制代码 代码如下: New-Variable -Name cannotChange -Value 1 -Option Constant 当脚本运行时你不可以再改变这个变量的值,此变量与值将绑定在此会话,所以某个明确的信息永远不会改变时,可以使用常量. 你也可以在配置文件定义常量: 复制代码 代码如下: PS> $profile.AllUsersAl

  • PowerShell中给函数参数设置帮助信息的例子

    本文介绍在PowerShell创建自定义函数时,如何为必选参数设置帮助信息. 下面这段代码,我们创建了一个test-function的函数.这个函数有一个参数p,它是必选参数.更进一步,我们为这个参数$p设置了一个helpMessage属性,这个属性的意思就是为这个必须参数提供帮助信息.因为是必选参数,所以在不输入值的情况下,函数是不会执行,而会提示为参数输入值的.如果用户不知道应该为这个参数输入什么值,那么这个HelpMessage有可能帮到忙. 复制代码 代码如下: PS C:\Users\

随机推荐