AI智能
改变未来

powershell之变量、常量和数组


POWERSHELL

  • 什么是powershell

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。 它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。

Windows PowerShell v3将伴随着MicrosoftHyper-V3.0和Windows Server 2012发布。PowerShell v3是一个Windows任务自动化的框架,它由一个命令行shell和内置在这个.NET框架上的编程语言组成。

PowerShell v3采用新的cmdlet让管理员能够更深入到系统进程中,这些进程可以制作成可执行的文件或脚本(script)。一条cmdlet是一条轻量命令,Windows PowerShell运行时间在自动化脚本的环境里调用它。Cmdlet包括显示当前目录的Get-Location,访问文件内容的Get-Content和结束运行进程的Stop-Process。

PowerShell v3在Windows Server 8中装载了Windows Management Framework 3.0。PowerShell运行时间也能嵌入到其它应用。

  • 如和启动powershell

启动方法有如下几种:

a) 直接开始菜单 -> 所有程序 -> Windows PowerShell -> Windows PowerShell(不同系统可能路径不一样)。启动后效果如下:
b) 开始菜单 -> 运行(run) -> 输入”PowerShell”。启动成功后和上图一样。

c) 命令提示符(Command Prompt) -> PowerShell。启动后效果如下:
启动成功后就可以在里面输入要执行的命令了,这就是PowerShell的交互界面。

  • 变量

变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。

在Bash shell中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。
这意味着,Bash shell在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。例如在C语言或者C++中,变量分为整数、小数、字符串、布尔等多种类型。

当然,如果有必要,你也可以使用Shell declare关键字显式定义变量的类型,但在一般情况下没有这个需求,,Shell开发者在编写代码时自行注意值的类型即可。

  1. 变量命名
    powershell中变量以美元符”$”开始,其余字符可以是字母、下划线、数字任意字符,不区分大小。

  2. 变量赋值与交换

  3. 查看变量

Powershell把变量的相关信息存放在variable:的驱动中。查看所有定义的变量的命令“ls variable:”,查询以a开头的变量如下:

  1. 环境变量

$env:中的环境变量只是电脑环境变量的一个副本,除了用.NET方法更新环境变量,其他的更改在下一次重新打开时,会恢复如初。

通过$env:提示powershell忽略基本的variable:驱动器,先去环境变量env:驱动器中寻找变量。

通过“ls env:”可以查询所有的环境变量,通过“$env:name”就可以访问指定name的环境变量了。

环境变量的创建和删除:

  1. 变量的作用域

$global

全局变量,在所有的作用域有效。

$script

脚本变量,在脚本内部有效。

$private

私有变量,在当前作用域有效。

$local

默认变量,在当前作用域有效,其它作用域对它只有可读权限。

  1. 强类型

给变量指定类型。

  • 常量

PowerShell的常量与变量有两处不同的地方:常量的值永远不会变,常量不能被删除。
使用常量之前,必须通过Set-Variable这个cmdlet来创建常量,并且使用一些参数来指定它等于某个常量。

注意:当使用常量的时候,必须用开头,就跟使用普通变量一样。然而,当使用Set−Variable定义常量时,不能用开头,就跟使用普通变量一样。然而,当使用Set-Variable定义常量时,不能用开头,就跟使用普通变量一样。然而,当使用Set−Variable定义常量时,不能用符号开头。
$aryComputers = “loopback”, “localhost”

Set-Variable -name intDriveType -value 3 -option constant

foreach ($strComputer in $aryComputers)

{\”Hard drives on: \” + $strComputer

Get-WmiObject -class win32_logicaldisk -computername $strComputer|

Where {$_.drivetype -eq $intDriveType}}

  • 数组

定义:数组即有序的元素序列,把相同类型的若干元素按有序的形式组织起来的一种形式。数组长度不可扩大,其大小由其组成元素决定。

  1. $array_name=value0,value01,value02 #定义数组,用逗号分开
    $array_name=value0…valuen #连续数字用…
  2. $array_name=@() #定义空数组
  • 强类型

通过下列的提示符,可以为一个变量强制指定类型。

Alias Type
[int] 32-bit signed integer
[long] 64-bit signed integer
[string] Fixed-length string of Unicode characters
[char] A Unicode 16-bit character
[bool] True/false value
[byte] An 8-bit unsigned integer
[double] Double-precision 64-bit floating point number
[decimal] An 128-bit decimal value
[single] Single-precision 32-bit floating point number
[array] An array of values
[xml] Xml objects
[hashtable] A hashtable object (similar to a dictionary object)
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » powershell之变量、常量和数组