zoukankan      html  css  js  c++  java
  • .psl脚本介绍

    .ps1文件是PowerShell写好的脚本文件

    可以在记事本中写一段PowerShell代码,然后将其保存为“xxx.ps1”,后面要使用它的时候,双击即可运行了。这有点像批处理的“.bat”文件,也有点像VBScript的“.vbs”文件。这些都是Windows的脚本文件。

    在线教程

    Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境

    powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。

    cmdlets是Powershell的内部命令,cmdlet的类型名为System.Management.Automation.CmdletInfo

    Powershell 命令集 cmdlets

    别名

    有两个作用:

    • 继承:继承unix-shell和windows-cmd。
    • 方便:方便用户使用。

    象运行可执行文件一样,Powershell运行文件和脚本

    必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中。

    脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码

    批处理文件

    扩展名为”.bat”的文本文件

    可以包含任何cmd控制台能够处理的命令。当批处理文件被打开,Cmd控制台会逐行执行每条命令。

    通过cmd进入cmd控制台输入ping发现执行的不是ping命令,而是直接运行ping.bat ,也就是说可以通过.bat 覆盖cmd命令。这种机制很危险,如果有人侵入电脑,并将系统内部命令篡改成自己批处理,那就太悲剧了。 这种命令与脚本的混淆不会发生在powershell中,因为powershell有更安全的机制。

    VB脚本文件

    扩展名为”.vbs”的文本文件

    powershell脚本

    扩展名为“.ps1”

    Powershell调用入口的优先级

    别名:控制台首先会寻找输入是否为一个别名,如果是,执行别名所指的命令。因此我们可以通过别名覆盖任意powershell命令,因为别名的优先级最高。

    函数:如果没有找到别名,会继续寻找函数,函数类似别名,只不过它包含了更多的powershell命令。因此可以自定义函数扩充cmdlet 把常用的参数给固化进去。

    命令:如果没有找到函数,控制台会继续寻找命令,即cmdlet,powershell的内部命令。

    脚本:没有找到命令,继续寻找扩展名为“.ps1”的Powershell脚本。

    文件:没有找到脚本,会继续寻找文件,如果没有可用的文件,控制台会抛出异常。

    变量

    powershell 不需要显示地去声明,可以自动创建变量

    变量的前缀为$

    单引号中的字符串不会识别和处理变量名,变量名均是以美元符”$”开始,剩余字符可以是数字、字母、下划线的任意字符

    变量名大小写不敏感

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

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

    交换两个变量的值,这个功能变得非常简单(PS C: est> $value1,$value2=$value2,$value1

    将变量的相关信息的记录存放在名为variable:的驱动中。如果要查看所有定义的变量,可以直接遍历variable:(PS C: est> ls variable:

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

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

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

    为了管理变量,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: est> New-Variable num -Value 100 -Force -Option readonly

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

      有没有权限更高的变量,有,那就是:选项Constant,常量一旦声明,不可修改(PS C: est> new-variable num -Value "strong" -Option constant

    在New-Variable 可以通过-description 添加变量描述(PS C: est> new-variable name -Value "me" -Description "This is my name"

      但是变量描述默认不会显示,可以通过Format-List 查看。(PS C: est> ls Variable:name | fl *

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

    自动化变量

    是那些一旦打开Powershell就会自动加载的变量。

    这些变量一般存放的内容包括

    1. 用户信息:例如用户的根目录$home
    2. 配置信息:例如powershell控制台的大小,颜色,背景等。
    3. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等。
  • 相关阅读:
    session0穿透-server降权打开程序
    解决pyinstaller在单一文件时无法正确添加权限清单问题,(UAC,uac_admin,manifest,asInvoker,python,requireAdministrator)
    [随笔][Tools][在Debian9上安装Nginx]
    [随笔][乱七八糟][WebServer]
    [随笔][乱七八糟][咖啡][咖啡分类]
    [随笔][乱七八糟][正向代理与反向代理]
    [随笔][Golang][nil]
    Go语言基础之Gin框架的热启动
    BeautifulSoup的使用
    Selenium之WebDriver高级等待
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/8481198.html
Copyright © 2011-2022 走看看