PowerShell-第1章 交互界面
1.1运行程序、脚本和已有的工具:
Program.exe arguments
ScriptName.ps1 arguments
BatchFile.cmd arguments
如果运行的命令名中包含空格,则用引号' 将命令括起来,同时在前边加上符号&,这称作调用操作,例:
& 'C:\Program Files\Program\Program.exe' arguments
运行当前目录下的文件
.\Program.exe arguments
运行当前目录下那些命令名中包含空格的命令,同时加上符号&和.\,例:
& '.\Program Files\Program\Program.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 scripts\Get-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:\temp\*.txt c:\temp\backup\ -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):显示继续操作信息
PowerShell-第1章 交互界面的更多相关文章
- (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...
- 来自 Codrops 的7种创新的拖放交互界面
Codrops 分享了一些界面拖放的交互设计想法.基本的思路是在拖动一个项目的时候,为特定的操作呈现出可投掷的区域.这节省了大量的界面空间 ,并给出了一个有趣的动态的互动.有很多应用场景,例如分类和组 ...
- Swift - 访问通讯录联系人(使用系统提供的通讯录交互界面)
1,通讯录访问介绍 通讯录(或叫地址簿,电话簿)是一个数据库,里面储存了联系人的相关信息.要实现访问通讯录有如下两种方式: (1)AddressBook.framework框架 : 没有界面,通过代码 ...
- Python在VSCode中进入交互界面调试
VSCode非常强大,断点好用,美中不足,每次只能通过下面窄窄一行进行各种检查,而python的优点就在于交互式的调试,所以希望能够在断点时能够进入到正常的交互界面进行调试. 我用的插件是: 设置交互 ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- python交互界面无法使用方向键
问题 python交互界面无法使用方向键,按方向键全变成^[[^C这类型的字符 解决办法 办法1: 使用yum安装readline.readline-devel,然后重装python 这种方法太麻烦了 ...
- 使用pycharm开发web——django2.1.5(三)创建models并进入交互界面shell做一些简单操作
这里model可以认为是数据对象本身 相当于在写java代码时候model目录下创建的实体类,models.py 中可以包含多个实体类,感觉这个操作挺骚的 下面是polls app里面的models, ...
- NX二次开发-UFUN获取显示在NX交互界面的对象UF_OBJ_is_displayable
NX9+VS2012 #include <uf.h> #include <uf_disp.h> #include <uf_obj.h> #include <u ...
- docker进入交互界面
进入cmd交互界面 docker run -it python:3.5 /bin/bash 退出 exit ctrl + d
随机推荐
- 持续集成~Jenkins里的NuGet和MSBuild插件
Jenkins是一个持续集成的环境,它是java开发的,大叔认为它的工作流程是 从源代码拉一个项目下来到它本地(可以配置定时机制) 恢复相关程序包nuget 编译程序 发布程序 现在说一下在配置jen ...
- Flask 学习系列(一) -登录
Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. Flask也被称为 “ ...
- FTP上传下载 C#辅助类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- SpringBoot 2.x (10):整合Redis
Redis部署到阿里云: 下载redis源码,编译,允许远程访问的配置 阿里云安全组设置: SSH连过去: wget http://download.redis.io/releases/redis-4 ...
- spring boot & mybatis集合的坑
因为是使用的mybatis逆向工程自动生成的实体类和dao层,然后在读取某一个表的content字段时出现问题. 问题描述:在mysql数据库里可以直接查询到这个字段的内容,但是使用java相关的方法 ...
- 16年毕业的前端er在杭州求职ing
来杭州也有一两个星期了,这个周末下雨,是在没地去,还是习惯性的打开电脑逛技术论坛,想想也是好久没有更新博文了... 背景 因为曾经看过一篇文章面试分享:一年经验初探阿里巴巴前端社招所以来杭州也是带有目 ...
- css选择器(基础)
CSS选择器: 一个样式的语法是由选择器+属性+属性值三部分组成: 到底什么是选择器呢? 答:个人直白的理解为:选择一种要对它进行操作的标签的方法就叫做选择器.也就是说选择器就是一种选择元素的 ...
- SQLServer查询语句收集(非常实用)
============================= SQLServer语句收集1 =========================== 1.数据操作 Select --从 ...
- Java jar包查询下载方法
做过java开发的工程师,对java应用所需jar包一定不会陌生.特别是有需要搭建开发环境时,对各种jar包的需求量就会很大. 如何快速的找到自己想要的jar包,是蛮多java工程师所面临的一个难题. ...
- C++拾遗(二)——初窥标准库类型
本篇博文的开始,先介绍一道书上看到的智力题:有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸.有一台称重精准的天平,只是用一次天平的情况下如何找出比较重的那瓶药丸? 好了,直 ...