zoukankan      html  css  js  c++  java
  • powershell系列学习笔记二:变量

    定义变量

    $a=10
    $b=4
    $str="字符串"

    定义好了变量名后,可以通过变量名来输出变量

    变量也可以放在字符串中,但是这里要注意的是,单引号中的变量不会被识别和处理,在powershell中,对变量名的大小写是不敏感的,也就是说$a和$A是同一个变量。

    赋值

    通过“=”来赋值,powershell几乎可以把任何一个值赋给变量,即使是命令也可以。

     powershell也可以多个变量同时赋值

    $a=$b=$c=10

     powershell交换两个变量的值,用这种格式就可以交换

     Powershell将变量的相关信息的记录存放在名为variable:的驱动中,查看所有定义的变量:

    ls variable:

    因为所有变量都是存在于驱动中的,验证变量是否存在:

    Test-Path variable:value1

    在powershell退出时,所有变量都会被自动删除,但是如果想要删除变量的话,也可以,删除变量:

    del variable:value1

    powershell自动化变量

     是指一打开powershell就会自动加载的变量,比如

    1. 用户信息:例如用户的根目录$home
    2. 配置信息:例如powershell控制台的大小,颜色,背景等。
    3. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等

    powershell中的某些自动化变量只能读,不能写。例如:$Pid

    powershell环境变量

    powershell中的变量只存在于powershell内部的会话中,一旦powershell关闭,这些变量就会自生自灭。但是如果环境变量被更新了,它会继续保存在操作系统中,即使其它程序也可以调用它

    读取特殊环境变量:

    $env:windir
    "My computer name $env:COMPUTERNAME"

     Powershell把所有环境变量的记录保存在env: 虚拟驱动中,因此可以列出所有环境变量 。一旦查出环境变量的名字就可以使用$env:name 访问了。查找环境变量:

    ls env:

    创建新的环境变量:

    $env:TestVar1="This is my environment variable"

    删除和更新环境变量:

    del env:windir

    更新环境变量就直接重新赋值就好了,其实,$env:中的环境变量只是机器环境变量的一个副本,即使你更改了它,下一次重新打开时,又会恢复如初。(.NET方法更新环境变量除外)

    powershell驱动器变量

    所有不是我们自己定义的变量都属于驱动器变量,例如环境变量。比如env:  ,驱动器上的一个”文件”,我们通过$访问它,就会返回”文件”的内容

    https://www.pstips.net/powershell-drive-variables.html

    powershell变量的作用域

    Powershell支持四个作用域:全局、当前、私有和脚本。

    比如在脚本中定义一个变量a,它的值是100。在powershell窗口中同样定义一个变量a,它的值为999。

    在执行脚本时,会输出a=100,但是在powershell窗口中输出变量a,会输出$a=999。这就是因为作用域不同的原因。

    $global
    全局变量,在所有的作用域中有效,如果你在脚本或者函数中设置了全局变量,即使脚本和函数都运行结束,这个变量也任然有效。

    $script
    脚本变量,只会在脚本内部有效,包括脚本中的函数,一旦脚本运行结束,这个变量就会被回收。

    $private
    私有变量,只会在当前作用域有效,不能贯穿到其他作用域。

    $local
    默认变量,可以省略修饰符,在当前作用域有效,其它作用域只对它有只读权限。

    控制台中的变量能被函数、脚本访问读取到,但是不能更改

    使用private可以使变量不被访问到

     对于$private限制的变量不能在函数中通过$global修改,不但不能修改,还会删除当前的$private变量

    https://www.pstips.net/powershell-scope-of-variables.html

    变量的类型和强类型

     Powershell会给数据分配一个最佳的数据类型;如果一个整数超出了32位整数的上限([int32]::MaxValue),它就会分配一个64位整数的数据类型;如果碰到小数,会分配一个Double类型;如果是文本,Powershell会分配一个String类型;如果是日期或者时间,会被存储为一个Datetime对象。这种类型自适应称作“弱类型”

    https://www.pstips.net/powershell-variable-strongly-typing.html

    指定类型变量

     强类型的使用也是十分丰富的

    PS> $date.DayOfWeek
    Thursday
    PS> $date.DayOfYear
    355
    PS> $date.AddDays(-10)
    
    2012年12月10日 12:45:00

    变量的幕后管理

    创建一个变量后,会生成一个PSVariable对象,这个对象不仅存储了变量的值,还存储了变量的其他信息,比如描述($var.Description)等

    https://www.pstips.net/powershell-variable-management-behind-the-scenes.html

    查看这个PSVariable对象

    Get-Variable var | fl *
    或者
    $var | fl *

  • 相关阅读:
    SelectionKey理解
    redis3.0.3集群搭建
    Centos6.5环境下安装SVN 整合Apache+SSL
    没有注册类 。已加载,但找不到入口点 DllRegisterServer
    今日立秋
    35+开启忙而有序的日子
    jmeter的常用函数
    jmeter之java请求
    生成Webservice客户端的4种方法
    Pytest高级进阶之Fixture
  • 原文地址:https://www.cnblogs.com/xiaoxiaosen/p/13441908.html
Copyright © 2011-2022 走看看