• powershell学习随笔


    • 本笔记主要用于快速回顾知识点,请不要将其当做系统的powershell教程

    1. 数学运算符

    • 1gb/1mb
    • 1gb/1mb*18kb
    • 1gb -gt 1mb ->-gt用于判断是否相等
    • 0xabc ->会自动转换为十进制

    2. powershell执行外部命令

    • 输入&"notepad" 或 输入:notepad均可 -> 打开notepad
    • &"绝对路径"
    • 题外话:
      • 使用$env:path ->可以查看系统变量
      • $env:path=$env:path+"绝对路径" ->使用命令添加环境变量(只生效一次)

    3. powershell命令集

    • powershell的目录基本上都采用:动词+名词 的形式
    • get-command:可以查看所有命令
    • get-help:查看命令帮助
    • get-process:获取进程信息
    • get-alias:获取当前会话的别名
    • get-history:浏览历史命令
    • get-date:获取当前时间

    4. powershell别名

    • get-help 命令 :也可以用来查看该命令是否有别名
    • get-alias -name 命令:可以用来查看该命令的真实名称
    • get-alias | where {$_.definition.startswith("Remove")}
      • $_:表示当前的元素
    • get-alias | group-object definition | sort -descending Count:将别名最多的排在最前面
    • set-alias -name 别名 -value 被命名别名的命令(自定义别名,临时生效)
      • set-alias -name pad -value notepad
    • del alias:别名(删除别名)
    • export-alias demo.ps1(导出别名信息)
    • import-alias -force demo.ps1(导入别名信息)

    5. powershell变量基础

    • 定义一个字符串变量:
      • $name="xiaoming"(字符串型)
      • 打印$name变量:$name
    • 定义一个数字型变量:
      • $age=26(数字型)
    • 定义一个花里胡哨的变量:
      • ${"i am a" var()}="hello"
      • 打印:${"i am a" var()}
      • 如果你的变量名如上非常花里胡哨,最好加一个大括号括住你的变量名(当然,肯定是不建议使用这样的变量名的)
    • $变量名=数学表达式
      • $n=(7*6+8)/2
      • $n
    • $变量名=命令
      • $n=ls
      • $n
    • 可以同时为变量$num1和$num2赋值:35
      • $num1=$num2=35
      • $num1
      • $num2
    • 注意:
      1. powershell中对大小写不敏感,$a与$A是相同的

    6. powershell变量操作

    • 交换变量值
      $num1=10
      $num2=20
      $num1,$num2=$num2,$num1
      
    • 判断变量是否存在
      • test-path variable:变量名
      • test-path variable:num1(查看变量num1是否存在)
    • 查看变量
      • ls variable:(查看当前正在使用的变量)
      • ls variable:num*(查看以num开头的变量)
      • ls vatiable:变量名(查看指定变量名的变量)
    • 删除变量
      • del variable:变量名
    • 当然也可以使用一下命令来操作变量,可以达到与上面命令相同的效果:
      • get-variable 变量名(查看变量)
      • remove-variable 变量名(删除变量)
      • new-variable 变量名(将变量变为只读)

    7. powershell自动化变量

    • 所谓的“自动化变量”就是指:powershell一旦打开就会自动加载的变量
      • $home:当前用户的根目录
      • $pid:当前powershell会话的进程标识符(只读)
      • $$:显示上一条所运行的命令
      • $?:显示上一条命令是否成功运行

    8. powershell环境变量

    • 查看当前的环境变量
      • ls env:
    • 查找以na开头的环境变量
      • ls env:na*
    • 打印环境变量的OS的值
      • $env:OS
    • 自定义/更新环境变量的值(临时生效)
      • $env:name="liming"
    • 删除环境变量
      • del env:name
    • 设置和获取【用户环境变量】(只对当前用户生效)

    9. powershell脚本执行策略

    • 获取powershell当前执行的脚本策略
      • get-executionpolicy
    • 设置powershell当前执行的脚本策略
      • set-executionpolicy 策略
      • set-executionpolicy RemoteSigned

    10. powershell与其他脚本程序的互相调用

    • 执行bat脚本/vbs脚本/powershell脚本
      • 直接绝对路径/相对路径进行运行
    • 在cmd中执行powershell脚本
      • powershell "&'demo.ps1'"

    11. powershell条件操作符

    • -eq:等于
    • -ne:不等于
    • -gt:大于
    • -lt:小于
    • -le:小于等于
    • -not:取反
    • -and:与
    • -or:或
    • -xor:异或
    • -contains:包含
      • (1,2,3) -contains 1 返回true
    • -notcontains:不包含
    • 筛选出不等于1的值:1,2,3,4 -ne 1

    12. powershell条件判断

    • 【if】
      • 实例:
      $num=100
      if($num -gt 90) {"1"} else {"-1"}
      if($num -gt 100) {"1"} elseif($num -eq 100) {"0"} else{"-1"}
      
    • 【switch】
      • 实例(if)
        $number=55
        if($number -gt 50 -and $number -lt 60){
            "此数值大于50小于60"
        }elseif($number -eq 50){
            "此数值等于50"
        }else{
            "此数字小于50"
        }
        
      • 实例(switch)
        $number=50
        switch($number){
            {($_ -lt 50) -and ($_ -gt 40)} {"此数字小于50且大于40"}
            {$_ -eq 50} {"此数值等于50"} 这行代码也可以写为:50 {"此数字等于50"}
            {$_ -gt 50} {"此数值大于50"}
        }
        

    13. powershell循环结构

    1. 【foreach】
      • 实例1:
        $arr=1..10
        foreach($n in $arr){
            $n*$n+10
        }
        
      • 实例2:
        $path_value=dir f:\all  --将命令的执行结果赋值给 $path_value变量
        foreach($file in $path_value){
            if($file.length -gt 1kb){
                $file.name
            }
        }
        
    2. 【while】
      • 实例1:(while)
        $num=15
        while($num -gt 10){
            $num
            $num=$num-1
        }
        
      • 实例2:(do while)
        $num=15
        do{
            $num
            $num=$num-1
        }while($num -gt 10)
        
    3. 【for】
      • 实例1:
        $sum=0
        for($i=1;$i -le 100;$i++){
            $sum=$num+$i
        }
        $sum
        
    4. 【switch循环】
      • 实例1:
        $num=1..10
        switch($num){
            default{"number=$_"}
        }
        
      • 实例2:
        $num=1..10
        switch($num){
            {($_ % 2) -eq 0} {"$_是偶数"}
            {($_ % 2) -ne 0} {"$_是奇数"}
        }
        
    5. break和continue关键字的使用
      • 实例1:(break)
        $num=1
        while($num -lt 6){
            if($num -eq 4){
                $num++
                break
            }else{
                $num
                $num++
            }
        }
        
      • 实例2:(continue)
        $num=1
        while($num -lt 6){
            if($num -eq 4){
                $num++
                continue
            }else{
                $num
                $num++
            }
        }
        

    14. powershell数组的创建与访问

    • 定义数组:
      • $arr1 -is [array] -用来判断是否是数组
      $arr1=1,2,3,4
      $arr2=1..5
      $arr3=1,"hello world"
      $arr4=@() -->空数组
      $arr4=@(1,2,3,4)
      $arr5=,"nicai",1
      $arr6=ipconfig
      
    • 访问数组:
      $arr=1,"hello world",(get-date)
      $arr[0]               -->访问第一个元素
      $arr[0,1]             -->访问第一个和第二个元素
      $arr[-1]              -->访问最后一个元素
      $arr[0..2]            -->访问第1,2,3元素
      $arr[0..2].count      -->访问元素的个数
      $arr[($arr.count)..0] -->逆序访问
      
    • 为数组添加元素:
      $arr=1,"nicai",(get-date)
      $arr.count
      $arr+="hahaha"
      $arr.count
      

    15. powershell自定义函数和调用

    1. 函数的定义与调用:
      • 实例1:
        function myping($site){
            ping $site
        }
        myping www.baidu.com -->调用
        
      • 实例2:
        function my($name,$age){
            $content="i am $name, and i am $age years old"
            write-host $content
        }
        my "nicai" 25
        
    2. 函数的返回值
      • 实例1:
      function add($num1,$num2){
          $sum=$num1+$num2
          return $sum
      }
      add 1 3
      
      • 实例2:
      function add($num1,$num2){
          $sum=$num1+$num2
          $sum.gettype().fullname -->返回值的类型全名
          return $sum
      }
      add 3 4
      
      • 实例3:
      function add($num1,$num2){
          return $num1,$num2  -->可以返回多个值
      }
      add 3 4
      
      • 实例4:
      function add($num1,$num2,$num3){
          $value=$num1,$num2,$num3
          $value.gettype() -->返回的结果为:数组类型
          return $value
      }
      add 1 2 3
      

    16. powershell定义文本

    • 实例1:
    "hello world $(get-date)"
    "hello my name is 'nicai'" -->这样写可以将单引号显示出来
    "hello my name is `"nicai`"" -->powershell中将反引号作为转义符号
    "你好`n朋友" -->powershell的换行符:`n
    

    17. powershell实现用户交互

    1. 接收用户输入:
    $input=read_host "请输入您的姓名"
    "您好,您输入的姓名是:$input"
    

    18. powershell格式化字符串

    • 实现格式化需要参数:-f
    • 实例1:
    $name="nicai"
    $age=25
    $body="strong"
    "My name is $name, i am $age years old, and my body is $body"
    "My name is {0}, i am {1} years old, and my body is {2},{3}" -f $name,$age,$body,(3*6) -->格式化输出(效果与上面的相同)
    

    19. powershell字符串对象方法

    • 实例1:
    $str="c:\windows\system32\demo.txt"
    $str.split("\").gettype()
    $str.split(".")[-1]     -->返回字符串“txt”
    $str.endwith("txt")     -->判断该字符串是否是以字符串来结尾的
    $str.contains("window") -->判断该字符串是否包含“window”
    $str.compareto("nicai") -->判断两字符串是否相同(相同返回0,不同返回-1)
    $str.indexof("w")       -->查出“w”字母的下标
    $str.insert(3,"hahaha") -->在索引3之后插入字符串“hahaha”
    $str.replace("c","d")   -->将c替换成d
    
    
  • 相关阅读:
    DS02--线性表
    DS01--抽象数据类型
    C语言最后一次作业--总结报告
    C语言第十一次作业--函数嵌套调用
    你还有很多要学的东西
    Google Guice 系列教程 - 基础实践
    Eclim指令集
    maven入门案例
    从java调用groovy
    linux下安装Groovy环境
  • 原文地址:https://www.cnblogs.com/02SWD/p/15896985.html
Copyright © 2020-2023  润新知