zoukankan      html  css  js  c++  java
  • 关于powershell的个人总结

    PowerShell 可以看做是弱类型语言。所谓弱类型语言可以是指不用区分数据类型,不用对数据类型进行转型,数据类型根据赋予它的值确定。
     
    1.变量的命名规范: $ + 其他字符     
     
    2.常量的命名规范:Set-Variable 来申明常量,-name 参数用于申明常量名,-value 参数用于申明常量值,-option constant 变示申明当前量为一个常量,常量的申明中常量名不需要加“$”,但使用时需要加上“$”符号
    例如:
    Set-Variable -name jay -value 2 -option constant
     
     
    3.PowerShell 可以利用$env:环境变量名来检查这些变量
    例如: $env:JAVA_HOME  ,也可以通过这个来检查变量是否存在  ----  [String::IsnNullOrEmpty($env:JAVA_HOME)]
     
    PS:  在环境变量不存时,可以创建新的环境变量$env:环境变量名=值的格式用于生成新的环境变量,当这种方式生成的环境变量是临时的,仅在当前的 PowerShell 中有效,重新打开 PowerShell 就没有了
     
    如果需要写入环境变量时,还可以使用
    [System.Environment]::SetEnvironmentVariable("testPath","d:/test","machine") 的方法写入到系统环境变量中或者使用
    [environment]::SetEnvironmentvariable("Path", ";c:powershellscript", "User")的方法写入到用户环境变量
     
    4.运算符
    + 加运算  -减运算   *乘运算   /除运算   %求模运算   +=相加并赋值   -=相减并赋值   ++自增运算   --自减运算
     
    5. 数组
    所谓数组,是有序的元素序列。
    在数组的使用过程中需要提前定义数组,也就是申明数组
    $array_name=value0,value1,value2 #定义数组,用逗号分开
    $array_name=value0..valuen #连续数字用..
    $array_name=@() #定义空数组
     
    6.强类型
    PowerShell 的数据类型包括:byte(无符号整数),int(有符号整数),short(有符号短整数),long(有符号长整数),char(字符类型),double(双精度浮点数),float(单精度浮点数),string(字符串)
     
    7.关于字符串的一些方法
    *   代表一个字符串
     
    +   合并两个字符串
     
    -replace,-ireplace   替换字符串,大小写不敏感
     
    -creplace    替换字符串,大小写敏感
     
    -eq, -ieq      验证是否相等,大小写不敏感
     
    -ceq    验证是否相等,大小写敏感
     
    -like,-ilike   验证字符串包含关系,允许模式匹配,大小写不敏感
     
    -clike         验证字符串包含关系,允许模式匹配,大小写敏感
     
    -notlike,-inotlike          验证字符串不包含关系,允许模式匹配,大小写不敏感 
     
    -cnotlike               验证字符串不包含关系,允许模式匹配,大小写敏感
     
    .Contains()    验证是否包含关系,大小写敏感
     
    .Split()   字符串拆分,以空格分隔
     
    .Split(str)   字符串拆分,以指定子串分隔
     
    .CompareTo(str)   字符串比较
     
    .Length   获取字符串长度
     
    .Insert(int,str)    在指定位置插入子串,下标从 1 开始
     
    .Remove(start,length)   删除从指定位置开始到指定长度的子串,下标从 1开始
     
    .Trim()  去掉字符串前后白空格
     
    .Substring(start,end)   截取字符串子串
     
    .IndexOf(str)   查找指定字符串在此字符串中第一次出现的位置 
     
    .LastIndexOf(str)  查找指定字符串在此字符串中最后一次出现的位置 
     
    .StartWith(str)   判断此字符串是以指定字符串开始
     
    .EneWith(str)    判断此字符串是以指定字符串结束
     
    .Equals()   判断两个字符串是否相等
     
    字符串格式化是在字符串后加上-f 参数,并引入占位符和变量的方法。 
    例如: "hello-world {0}" -f $data
     
    8.逻辑控制语句
    if-else  :  当分支只有两种时,我们可以使用此结构
     
    if-elif-else   :   当分支超过两个,仅仅使用 if-else 结构明显不能满足要求了,这个时候可以在中间加上一个或多个 elif 的条件来满足需求
     
    if-if   :    多个 if 放在一起,这种结构有个特点,它不会像前面的结构那样,只要满足其中一个条件,执行相应的代码后就跳出整个分支结构,而此结构不但会执行首个满足条件的分支,它甚至会到每一个 if 分支里都去验证一下条件是否为 True,如果条件依然满足,程序将继续运行该条件中的语句。
     
    嵌套 if 语句,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中
    if(表达式 1){
    语句
    if(表达式 2){
    语句
    }elseif(表达式 3){
    语句
    }else{
    语句
     
     
    9.逻辑运算符
    -not        非运算,表达式为 true 则返回 false,否则返回 true
    -or          或运算,有一个表达式为 true 则返回 true
    -and        与运算,两个表达式都为 true 才返回 true
    -xor         逆或运算
     
    10.关系运算符
    -eq      检测两个数是否相等,相等返回 true。$a -eq $b
    -ne      检测两个数是否不相等,不相等返回 true。$a -ne $b
    -gt       检测左边的数是否大于右边的,如果是,则返回 true。$a -gt $b
    -ge      检测左边的数是否大于等于右边的,如果是,则返回 true。$a -ge $b
    -lt        检测左边的数是否小于右边的,如果是,则返回 true。$a -lt $b
    -le       检测左边的数是否小于等于右边的,如果是,则返回 true。$a -le $b
    [String]::IsNullOrEmpty(str)    判断字符串是否为空
    -match 判断字符串是否匹配给定的正则表达式
     
    11.正则表达式
    ^      在字符串的开始匹配
    B    不在单词的边界匹配
    .       匹配除了换行符意外的任意字符
        在字符串的结尾匹配(包含多行文本)
    [^abc]      匹配除了包含在中括号的任意字符
    uFFFF     匹配 Unicode 字符的十六进制代码 FFFF。例如,欧元符号的代码 20AC
    [abc]     匹配括号中指定的任意一个字符
    v         匹配纵向制表符(ASCII 11)
    [a-z]     匹配括号中指定的任意区间中任意一个字符 w 匹配字符,数字和下划线
    [^a-z]   匹配除了包含在中括号指定区间字符的字符 W 匹配匹配字符,数字和下划线意外的字符
    a        响铃字符(ASCII 7)
    xnn     匹配特殊字符,nn 代表十六进制的 ASCII 码
    c or C 匹配 ASCII 中的控制字符,例如 Ctrl+C
    .*          匹配任意数量的字符(包括 0 个字符)
    d         匹配数字字符,等同于[0-9]
    *           匹配一个元素 0 次或者多次(最大限度地匹配)
    D         匹配数字以外的字符,等同于[^0-9]
    *?         匹配前面的元素零次或者多次(最小限度地匹配)
    e         Esc (ASCII 9)
    .*          匹配任意个数的任意字符(包括 0 个字符)
    f         换页符(ASCII 15)
    ?          匹配上一个元素 0 次或者 1 次(最大限度地匹配)
             换行符
    ??        匹配上一个元素 0 次或者 1 次(最小限度地匹配)
             回车符
    {n,}       匹配上一个元素至少 n 次
    s
    白空格(空格,制表符,新行)
    {n,m}    匹配上一个元素 n 至 m 次
    S        匹配(空格,制表符,新行)意外的字符
    {n}        匹配上一个元素 n 次
            制表符
    +         匹配上一个元素一次或者多次
    A        在字符串的开始匹配(包含多行文本)
    $         在字符串的结尾匹配
            在单词的边界匹配
     
    一般校验的格式为:   $userinfo -match 正则
     
     
    12.循环结构
    while :
    在 PowerShell 中如果需要做不定次数的循环,建议使用 while True 这种结构,while循环对条件控制非常有利
    While(判断条件){}
     
    Do-while:
    While 循环会先进行条件判断在才开始循环,如果期望优先执行一次则 while 循环就比较吃力了,至少代码量会增加。例如:希望输入一个命令,如果这个命令不是 exit 则执行,如果这个命令不是 exit 则继续执行
     
    for:在明确循环次数的时候建议使用 for 循环
    for(变量;控制条件;变量自增){
    循环执行
    }
     
    foreach 循环在 PowerShell 中是用于循环遍历同组多元素的循环方法,也可以理为循环遍历数组的方法
    foreach(变量 in 组){
    变量操作
    }
     
    循环跳出有两个关键字,continue 和 break,continue 用于表示退出本次循环继续下一次,break 表示退出整个循环。
     
     
     
     
  • 相关阅读:
    java private修饰符的作用域
    debug运行下报错,但不影响运行ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2(转)
    非线程安全的HashMap 和 线程安全的ConcurrentHashMap(转载)
    【Java集合源码剖析】HashMap源码剖析(转)
    eclipse 解决乱码问题
    java替换txt文本中的字符串
    tomcat startup.bat 启动脚本(转)
    tomcat 点击startup.bat一闪而过
    tomcat 目录文件夹作用(转)
    引脚复用
  • 原文地址:https://www.cnblogs.com/kyooo/p/13196243.html
Copyright © 2011-2022 走看看