• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Windows Powershell 定义变量

    变量可以临时保存数据,因此可以把数据保存在变量中,以便进一步操作。

    #定义变量
    $a=10
    $b=4
    #计算变量
    $result=$a*$b
    $msg="保存文本"
    
    #输出变量
    $result
    $msg
    
    40
    保存文本
    

    powershell 不需要显示地去声明,可以自动创建变量,只须记住变量的前缀为$.

    创建好了变量后,可以通过变量名输出变量,也可以把变量名存在字符串中。但是有个例外单引号中的字符串不会识别和处理变量名。

    选择变量名

    在powershell中变量名均是以美元符”$”开始,剩余字符可以是数字、字母、下划线的任意字符,并且powershell变量名大小写不敏感($a和$A 是同一个变量)。

    某些特殊的字符在powershell中有特殊的用途,一般不推荐使用这些字符作为变量名。当然你硬要使用,请把整个变量名后缀用花括号括起来。

    PS C:\test> ${"I"like $}="mossfly"
    PS C:\test> ${"I"like $}

    mossfly赋值和返回值

    赋值操作符为“=”,几乎可以把任何数据赋值给一个变量,甚至一条cmdlet命令
    ,为什么,因为Powershell支持对象,对象可以包罗万象。

    PS C:\test> $item=Get-ChildItem .
    PS C:\test> $item
    
      Directory: C:\test
    
    Mode        LastWriteTime   Length Name
    ----        -------------   ------ ----
    d----    2011/11/23   17:25      ABC
    -a---    2011/11/24   18:30   67580 a.html
    -a---    2011/11/24   20:04   26384 a.txt
    -a---    2011/11/24   20:26   12060 alias
    -a---    2011/11/24   20:27   12060 alias.ps1
    -a---    2011/11/23   17:25     0 b.txt
    -a---    2011/11/23   17:25     0 c.txt
    -a---    2011/11/23   17:25     0 d.txt
    -a---    2011/11/25   11:20    556 employee.xml
    -a---    2011/11/24   17:37    7420 name.html
    -a---    2011/11/28   15:30     63 ping.bat
    -a---    2011/11/24   17:44   735892 Powershell_Cmdlets.html
    -a---    2011/11/28   17:03     60 test.ps1
    -a---    2011/11/23   17:37    242 test.txt
    -a---    2011/11/28   16:42    170 test.vbs
    
    PS C:\test> $result=3000*(1/12+0.0075)
    PS C:\test> $result
    272.5
    

    给多个变量同时赋值
    赋值操作符不仅能给一个变量赋值,还可以同时给多个变量赋相同的值。

    PS C:\test> $a=$b=$c=123
    PS C:\test> $a
    123
    PS C:\test> $b
    123
    PS C:\test> $c
    123

    交换变量的值

    要交换两个变量的值,传统的程序语言至少需要三步,并且还需定义一个中间临时变量。

    $Value1 = 10
    $Value2 = 20
    $Temp = $Value1
    $Value1 = $Value2
    $Value2 = $Temp

    在powershell中,交换两个变量的值,这个功能变得非常简单。

    PS C:\test> $value1=10
    PS C:\test> $value2=20
    PS C:\test> $value1,$value2=$value2,$value1
    PS C:\test> $value1
    20
    PS C:\test> $value2
    10

    查看正在使用的变量
    Powershell将变量的相关信息的记录存放在名为variable:的驱动中。如果要查看所有定义的变量,可以直接遍历variable:

    PS C:\test> ls variable:
    
    Name              Value
    ----              -----
    "I"like $           mossfly
    $               cls
    ?               True
    ^               cls
    _
    1               1
    a               123
    args              {}
    b               123
    c               123
    ConfirmPreference       High
    ConsoleFileName
    DebugPreference        SilentlyContinue
    。。。
    

    查找变量

    因为有虚拟驱动variable:的存在,可以象查找文件那样使用通配符查找变量。例如要查询以value打头的变量名。

    PS C:\test> ls variable:value*
    
    Name              Value
    ----              -----
    value1             20
    value2             10
    

    验证变量是否存在

    验证一个变量是否存在,仍然可以象验证文件系统那样,使用cmdlet Test-Path。为什么?因为变量存在变量驱动器中。

    PS C:\test> Test-Path variable:value1
    True
    PS C:\test> Test-Path variable:value2
    True
    PS C:\test> Test-Path variable:valueUnkonw
    False

    删除变量

    因为变量会在powershell退出或关闭时,自动清除。一般没必要删除,但是你非得删除,也可以象删除文件那样删除它。

    PS C:\test> Test-Path variable:value1
    True
    PS C:\test> del variable:value1
    PS C:\test> Test-Path variable:value1
    False

    使用专用的变量命令

    为了管理变量,powershell提供了五个专门管理变量的命令Clear-Variable,Get-Variable,New-Variable,Remove-Variable,Set-Variable。因为虚拟驱动器variable:的存在,clear,remove,set打头的命令可以被代替。但是Get-Variable,New-Variable。却非常有用new-variable可以在定义变量时,指定变量的一些其它属性,比如访问权限。同样Get-Variable也可以获取这些附加信息。

    变量写保护

    可以使用New-Variable 的option选项 在创建变量时,给变量加上只读属性,这样就不能给变量重新赋值了。

    PS C:\test> New-Variable num -Value 100 -Force -Option readonly
    PS C:\test> $num=101
    Cannot overwrite variable num because it is read-only or constant.
    At line:1 char:5
    + $num  =101   + CategoryInfo     : WriteError: (num:String) [], SessionStateUnauthorizedAccessException   + FullyQualifiedErrorId : VariableNotWritable PS C:\test> del Variable:num
    Remove-Item : Cannot remove variable num because it is constant or read-only. If the variable is read-only,
    ration again specifying the Force option.
    At line:1 char:4
    + del  Variable:num
      + CategoryInfo     : WriteError: (num:String) [Remove-Item], SessionStateUnauthorizedAccessExcepti
      + FullyQualifiedErrorId : VariableNotRemovable,Microsoft.PowerShell.Commands.RemoveItemCommand

    但是可以通过删除变量,再重新创建变量更新变量内容。

    PS C:\test> del Variable:num -Force
    PS C:\test> $num=101
    PS C:\test> $num
    101

    有没有权限更高的变量,有,那就是:选项Constant,常量一旦声明,不可修改

    PS C:\test> new-variable num -Value "strong" -Option constant
    
    PS C:\test> $num="why? can not delete it."
    Cannot overwrite variable num because it is read-only or constant.
    At line:1 char:5
    + $num  ="why? can not delete it."   + CategoryInfo     : WriteError: (num:String) [], SessionStateUnauthorizedAccessException   + FullyQualifiedErrorId : VariableNotWritable PS C:\test> del Variable:num -Force
    Remove-Item : Cannot remove variable num because it is constant or read-only. If the variable is read-only,
    ration again specifying the Force option.
    At line:1 char:4
    + del  Variable:num -Force
      + CategoryInfo     : WriteError: (num:String) [Remove-Item], SessionStateUnauthorizedAccessExcepti
      + FullyQualifiedErrorId : VariableNotRemovable,Microsoft.PowerShell.Commands.RemoveItemCommand
    

    变量描述
    在New-Variable 可以通过-description 添加变量描述,但是变量描述默认不会显示,可以通过Format-List 查看。

    PS C:\test> new-variable name -Value "me" -Description "This is my name"
    PS C:\test> ls Variable:name | fl *
    
    PSPath    : Microsoft.PowerShell.CoreVariable::name
    PSDrive    : Variable
    PSProvider  : Microsoft.PowerShell.CoreVariable
    PSIsContainer : False
    Name     : name
    Description  : This is my name
    Value     : me
    Visibility  : Public
    Module    :
    ModuleName  :
    Options    : None
    Attributes  : {}
    

    您可能感兴趣的文章:
    • Windows Powershell 自动化变量
    • Windows Powershell 环境变量
    • Windows Powershell 变量的作用域
    • Windows Powershell 变量的类型和强类型
    • Windows Powershell 变量的幕后管理
    上一篇:Powershell小技巧之使用Get-ChildItem得到指定扩展名文件
    下一篇:Windows Powershell 自动化变量
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Windows Powershell 定义变量 Windows,Powershell,定义,变量,