概述
参考 syntax-variables
在PowerShell中,所有的变量前面都会带着一个美元符号“$”,如:
$var = 1
$var = "some string"
[DataType]$var = value
注:PowerShell的数据类型有如下几种:
- [string] 定长Unicode字符串
- [char] 16位Unicode字符
- [byte] 8位无符号字符
- [int] 32位有符号整型
- [long] 64位有符号整型
- [bool] 布尔型
- [decimal] 128位小数
- [single] 单精度32位浮点小数
- [double] 双精度64位浮点小数
- [DateTime] 时间日期
- [xml] xml对象
- [array] 数组
- [hashtable] 哈希表
多个不同的变量可以在一行内初始化:
$var2=($var1=1)+1
变量也可包含标点符号,但需要用花括号{}括起来,比如${:,.ldc12n}='dscasd'
。
然而如果这种变量里包含冒号:
那么PowerShell会认为它代表路径并会将变量存储到文件中。
如在脚本里输入以下语句:
${D:2.txt} = 123
运行后可以发现在D盘下创建了一个名为2.txt
的文本文件,里面的内容是123
。
同样,如果在D盘下新建一个名为1.txt
的文本文件,并在其中输入some text
。
运行以下变量,可以输出文件内容:
PS D:> ${D:1.txt}
sdfsdfsdcsdc
PS D:>
如刚开始的示例[DataType]$var = value
,除了可以不直接申明变量的类型,还可以显示的指定变量的类型。
[int]$myPrice = 128
[string]$myDescription = "Barbecue grill"
[string]$myDescription = 123
[string]$myDate = (get-date).ToString("yyyyMM")
$([DateTime] "12/30/2009")
$([DateTime]::Now)
[datetime]$start_date=[datetime]::now.date.addDays(-5)
可是,如果指定的类型是int,但却用string赋值,则会报错。
PS E:myprojectpowershell_script> .test.ps1
无法将值“fsdcsdc”转换为类型“System.Int32”。错误:“输入字符串的格式不正确。”
所在位置 E:myprojectpowershell_scripttest.ps1:1 字符: 1
+ [int]$i = "fsdcsdc"
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [],RuntimeException
+ FullyQualifiedErrorId : InvalidCastFromStringToInteger
在PowerShellV3.0的版本中,可以指定有效范围:
PS C:UsersAdministrator> [ValidateRange(1,10)][int]$x = 1
PS C:UsersAdministrator> $x = 200
无法验证此变量,因为值 200 不是变量 x 的有效值。
所在位置 行:1 字符: 1
+ $x = 200
+ ~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ValidationMetadataException
+ FullyQualifiedErrorId : ValidateSetFailure
数组变量可以用以下的方法初始化:
$myArray = "The", "world", "is", "everlasting"
PowerShell还支持变量这样赋值:
$varX, $varY = 64
# $varA = 1, $varB = 2, $varC = 3
$varA, $varB, $varC = 1, 2, 3
以下单词为保留单词,不能用来当做变量名:
break, continue, do, else, elseif, for, foreach, function, filter, in, if, return, switch, until, where, while.
最后
以上就是长情面包为你收集整理的Powershell 脚本简单入门(二)——变量和赋值的全部内容,希望文章能够帮你解决Powershell 脚本简单入门(二)——变量和赋值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复