暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Powershell语法入门

HACKWAY 2020-08-16
1468

这里是一些简单的基础,罗列一些简单的语法,如果你有一些编程语言的基础一眼就能明白,通过这些大概了解powershell的入门使用语法

认识PowerShell

$psversiontable查看版本

PowerShell强大之处

  1. 快捷方便
  2. 面向对象
  3. 支持兼容.net vbs等
  4. 可拓展性

PowerShell快捷键

    alt+f7 清除命令的历史纪录
    esc 清空当前命令行

    PowerShell执行外部命令

    &"notepad"

    PowerShell命令集

    动名词
    来命名命令

    • cmd 命令在powershell中可以直接使用

    get-command # 获取所有命令列表

    • 帮助命令走天下

    get-help

    PowerShell别名使用

    get-alias -name ls # 查询ls的原始命令

    PowerShell自定义别名

    set-alias -name pad -value notepad # 设置临时别名,将notepad赋给pad别名 del alias:pad # 删除别名 export-alias 1.psl # 导出别名 import-alias -force 1.psl # 强制导入别名

    PowerShell变量基础

    • 等于号赋值

    $name="xx"

    • 特殊变量名称用花括号包围

    ${"asdsad asdsd" var ()}

    PowerShell变量操作

    • 支持多变量赋值name2=1,2
    • 查看正在使用的变量

    Get-Variable num* # 查找num特定变量值

    • 确定变量是否存在

    test-path variable:num1 # 返回的是布尔值

    • 删除变量名

    Remove-Variable num1

    PowerShell自动化变量

    常用的变量

    • $pid
    • $home

    PowerShell环境变量

    ls env: # 查看当前环境变量

    $env:os # 输出某个键的值

    $env:0s="Linux" # 临时赋值变量

    • 设置永久环境变量(.net方式)

    [environment]::setenvironmentvariable("PATH","D:","User")

    PowerShell脚本执行策略

    get-executionpolicy # 查看当前运行策略

      策略分类
      > get-help set-executionpolicy


      语法
      Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | U
      ndefined} [[-Scope] {Process | CurrentUser | LocalMachine | UserPolicy | MachinePolicy}] [-Confirm] [-Force] [-What
      If] [<CommonParameters>]


      set-executionpolicy RemoteSigned # 设置可以运行的策略

      PowerShell与其他脚本程序的互相调用

      1. powershell直接可以执行bat、vbs、psl文件
      2. bat调用powershell 需要使用 powershell &"文件路径"

      PowerShell条件操作符

      • -eq  #等于
      • -lt #小于
      • -gt #大于
      • -contains #不包含

      1,3,5 -contains 3

      • -notcontains
      • -not
      • -and
      • -or
      • -ne #不等于

      1,3,5 -ne 3

      PowerShell条件判断【if语句】

      if(num -eq 100){"0"} else {"-1"}

      PowerShell条件判断【switch语句】

        $number = 49
        switch($number)
        {
        {$_ -le 50} {"此数值小于50"}
        {$_ -eq 50} {"此数值等于50"}
        {$_ -gt 50} {"此数值大于50"}
        }
        \\ $_代表变量

        PowerShell循环结构【foreach语句】

          $arr = 1,2,3,4,5 或者 $arr=1..10
          foreach ($n in $arr)
          {
          if($n -gt 5)
          {
          $n
          }
          }

          PowerShell循环结构【while语句】

            $num = 15
            while($num -gt 15)
            {
            $num
            $num=$num-1
            }
            • dowhile 至少运行一次
              do
              {
              $num
              $num=$num-1
              }
              while($num -gt 15)

              break和continue关键字使用

              break跳出

                $num=1
                while($num -lt 6)
                {
                if($num -gt 4)
                {
                break
                }
                else
                {
                $num
                $num++
                }
                }

                continue跳过

                  $num=1
                  while($num -lt 6)
                  {
                  if($num -gt 4)
                  {
                  break
                  }
                  else
                  {
                  $num
                  $num++
                  }
                  }

                  PowerShell循环结构【for语句】

                    $sum=0
                    for($i=1;$i -;e 100;$i++)
                    {
                    $sum=$sum+$i
                    }
                    $sum
                    \\ 计算前100个数字的和

                    PowerShell循环结构【switch循环】

                      $num=1..10
                      swith($num)
                      {
                      {($_ % 2) -eq 0} {"$_ 是偶数"}
                      {($_ % 2) -ne 0} {"$_ 是奇数"}
                      }

                      PowerShell数组的创建

                        $arr = ipconfig
                        $arr
                        $arr -is [array]
                        \\ 判断是否是数组

                        arr=ipconfig #cmd命令也可以执行
                        arr=@() #创建空数组 $arr=1..10,"string",(get-date)#创建混合数组

                        PowerShell访问数组

                        $arr[0..2]

                        PowerShell自定义函数及调用

                          function myping($url)
                          {
                          ping $url
                          }
                          myping www.baidu.com

                          PowerShell函数返回值

                          return

                          PowerShell定义文本

                          `转义

                          PowerShell实现用户交互

                            $input=read-host "请输入具体的路径"
                            "您当前的路径是:$input"

                            PowerShell格式化字符串

                              "my name is {0} ,iam {1} years old" -f $name,$age
                              为你铺好的HACKWAY
                              长按扫码上车
                              你点的每个在看,我都认真当成了喜欢





                              文章转载自HACKWAY,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                              评论