• PowerShell-第1章 交互界面


    1.1运行程序、脚本和已有的工具:

      Program.exe arguments

      ScriptName.ps1 arguments

      BatchFile.cmd arguments

      如果运行的命令名中包含空格,则用引号' 将命令括起来,同时在前边加上符号&,这称作调用操作,例:

        & 'C:Program FilesProgramProgram.exe' arguments

      运行当前目录下的文件

        .Program.exe arguments

      运行当前目录下那些命令名中包含空格的命令,同时加上符号&和.,例:

        & '.Program FilesProgramProgram.exe' arguments

      在PowerShell提示符下,进行表达式运算:

        

    1.2 运行PowerShell命令

      Get-Process命令是一个内置的PowerShell命令,称之为cmdlet,为管理员和开发人员提供了重要的功能。

      1>采用同一的命令语法

      2>支持丰富的管道功能

      3>输出易于管理的对象,而不是容易出错的文本

      

    1.3 自动以shell、配置文件与提示符

      PowerShell默认将你的脚本文件的地址存放在$profile变量中,可以通过这个变量来访问脚本文件。

      创建新的脚本文件(覆盖已存在的):

        New-Item -type file -force $profile

      编辑已存在的文件:

        notepad $profile

      查看配置脚本文件的内容:

        Get-ChildItem $profile

      

      修改控制窗口的标题:

        $host.UI.RawUI.WindowTitle ="标题"

      修改输出提示的颜色:

        Write-Host -ForegroundColor DarkGray "改变输出提示的颜色"

      

    1.4 查找实现指定任务的命令

      获得指定命令的概要信息:  

        Get-Command CommandName

      获得指定命令的详细信息,将Get-Command的输出结果重定向到Format-List命令:

        Get-Command CommandName | Format-List

      想搜索包含"text"的所有命令,用星号*,例:

        Get-Command *text*

      想搜索所有使用Get动词的命令,在-Verb后输入参数Get,如下:

        Get-Command -Verb Get

      想搜索所有与服务有关的命令,在-Noun后加入参数Service,如下:

        Get-Command -Noun Service

    1.5 获得命令帮助

      获得一个命令的概要帮助,主要包括命令的大纲,语法以及细节描述:

        Get-Help CommandName

        或者 CommandName -?

      获得一个命令的帮助信息的详情,包括参数说明和示例:

        Get-Help CommandName-Detailed

      获得一个命令的详细的帮助信息,包含全部参数描述和注释信息:  

          Get-Help CommandName -Full

      获得一个命令的例子信息,如下:

         Get-Help CommandName -Examples

      获得更多关于Get-Help的信息:

        Get-Help Get-Help

    1.7 在PowerShell之外调用PowerShell脚本

      从批处理文件、登录脚本、定时任务或其他非PowerShell应用程序中调用PowerShell脚本:

        PowerShell "& 'full path to script' arguments"

        例:PowerShell "& 'C:shared scriptsGet-Report.ps1' Hello World"

    1.9 获得系统日期与时间

        Get-Date

      检查今天是星期几,如下:

        $date=Get-Date

        $date.DayOfWeek

        

      Get-Help Get-Date可以查看更多关于Get-Date的命令

    1.10 检查最后运行命令的状态

      PowerShell提供了两个变量来监测最后执行的命令是否成功,这两个变量是$lastExitCode和$?

      变量$lastExitCode:

        数字型,它返回最后脚本或应用程序执行返回的退出码或出错级别

      变量是$?:

        布尔型,返回最后执行命令的成功true或失败false

      

    1.11 计算命令执行的时间

      计算一个命令执行的时间:  

        Measure-Command { Start-Sleep -Milliseconds 337 }

        

    1.12 PowerShell快捷键

      Up 向前搜索历史命令

      Down 向后搜索历史命令

      PgUp 显示历史命令中第一个命令

      PgDown 显示历史命令中最后一个命令

      Left 把光标向左移动一个字符

      Right 把光标向右移动一个字符

      Home 在命令行中,把光标移到开始位置

      End 在命令行中,把光标移到结束位置

      Ctrl+Left 把光标向左移动一个单词

      Ctrl+Right 把光标向右移动一个单词

    1.14 使用与管理控制台历史

      获得最近使用的命令:

        Get-History

      从历史命令中获得指定的某个命令,可以将命令的ID传给Invoke-History,如下:

        Invoke-History Id

      通过给$MaximumHistoryCount赋值,可以增加或限制会话历史中存储命令的数量

        $MaximumHistoryCount =Count

      保存历史命令到文件,可以使用管道命令:

        Get-History | Export-CliXml Filename  

      将已经保存的命令加载到控制台,利用管道重定向即可

        Import-CliXml Filename | Add-History

    1.15 将命令的输出保存到文件

      通过Out-File命令或者重定向操作符将命令输出的结果保存到文件中

      Out-File

        Get-ChildItem | Out-File unicodeFile.txt

        Get-Content filename.cs | Out-File -Encoding ASCII File.txt

        Get-ChildItem | Out-File-Width 120 unicodeFile.cs

      重定向操作符

        Get-ChildItem > file.txt

        Get-ChildItem 2> file.txt

    1.16 向文件的结尾处加入信息

      将管道输出定向到文件中,并且在文件后面追加信息

      使用Out-File命令的参数-Append

        Get-ChildItem | Out-File -Append files.txt

      重定向操作符

        Get-ChildItem >> files.txt

    1.17 记录你的会话全文

      记录当前会话的日志或全文

        Start-Transcript path

        Stop-Transcript

        path是可选项,用来指定记录的文件名,它基于当前的系统时间。默认情况下,将这个文件保存到My Documents目录下,如果想停止记录,则Stop-Transcript。

    1.18 将某一项的属性显示成列表

      显示一个项的详细信息,可以使用管道命令功能把项输出给Format-List命令,例如:

        $currentError=$error[0]

        $currentError | Format-List -Force

        PowerShell中有三种格式化命令:Format-Table、Format-Wide和Format-List,Format-List获得输入将以列表方式显示出来。

        默认情况下,PowerShell从安装目录下的*.format.ps1xml文件中获得要显示的属性。如果想显示所有的属性,可以键入Format-List *。

        有些时候你键入了Format-List *,但是不能获得项的属性列表,这种情况的出现是由于在*.format.ps1xml文件中定义了项,但是没有定义任何在列表命令中药显示的条目,

        这种情况下,可以键入Format-List -Force

    1.19 将某一项的属性显示成表格

      将命令的输出以管道方式输出给Format-Table,如下:

        Get-Process | Format-Table

        

      显示特定的属性

        Get-Process | Format-Table Name,WS

        

      通知PowerShell以最易阅读的方式来格式化表格,可以提供-Auto参数给Format-Table

        Get-Process | Format-Table Name,WS -Auto

        

      自定义列(以兆为单位显示一个进程的工作集),可以提供一个自定义的格式

        $fields="Name",@{Label="WS (MB)"; Expression={$_.WS / 1mb}; Align="Right"}

        Get-Process | Format-Table $fields -Auto
        

    1.20 管道命令的错误输出

      列出当前会话列表中发生的所有错误,可访问$error数组:

        $error

      列出会话列表中最后发生的错误,即访问$error数组中的第一个值

        $error[0]

      列出错误的详细信息,以管道方式输出给Format-List,注意要加上-Force

        $currentError=$error[0]

        $currentError | Format-List -Force

      列出引起错误的命令的详细信息,可以访问InvocationInfo属性

        $currentError=$error[0]

        $currentError.InvocationInfo

      以更加简洁的基于分类的方式显示错误,修改变量$errorView的值

        $errorView="CategoryView"

      清除PowerShell产生的错误

        $error.Clear()

    1.21 配置调试、校验和处理输出

      启动脚本和生成它的命令的调试信息的输出

        $debugPreference="Contiune"

        Start-DebugCommand

      启用命令的校验模式

        Copy-Item c: emp*.txt c: empackup -Verbose

      禁用脚本或命令产生的进度信息

        $progressPreference ="SilentlyContinue"

        Ger-Process.ps1

      处理产生错误输出之外,许多脚本和命令还生成其他几种输出,包括:

      调试输出:诊断问题

        Write-Debug

        或调用WriteDebug()

        输出这类信息。除非通过$host.PrivateData.Debug*颜色配置变量来定义输出信息的颜色,否则会以黄色显示这类信息

      验证输出:监视命令的动作

        Write-Verbose

        或调用WriteVerbose()

        输出这类信息,除非通过$host.PrivateData.Verbose*颜色配置变量来定义输出信息的颜色,否则会以黄色显示这类信息

      进度输出:监视长时间运行的命令的状态

        Write-Process

        或者调用WriteProgress()

        输出这类信息,除非通过$host.PrivateData.Progress*颜色配置变量来定义输出信息的颜色,否则会以黄色显示这类信息

      一些命令只有在分别指定-Verbose或-Debug参数后才会产生炎症或调试信息。为了配置脚本或命令的调试、验证或进度信息,可以通过修改shell变量

      $debugPreference、$verbosePreference和$progressPreference来达到目的,这些变量可接受的值有:
        安静模式(silentlyContinue): 不显示输出信息

        停止模式(stop):将输出视为错误

        继续模式(continue):显示输出

        询问模式(inquire):显示继续操作信息

  • 相关阅读:
    LuoguP1126 机器人搬重物(BFS)
    POJ1950----DFS
    C
    B
    A
    C
    B
    A
    A
    B
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/4711404.html
Copyright © 2020-2023  润新知