一、简介——连接

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。 当前powershell有四版本,分别为1.0,2.0,3.0 ,4.0

  • 如果您的系统是window7或者Windows Server 2008,那么PowerShell 2.0已经内置了,可以升级为3.0,4.0。
  • 如果您的系统是Windows 8 或者Windows server 2012,那么PowerShell 3.0已经内置了,可以升级为4.0。
  • 如果您的系统为Windows 8.1或者Windows server 2012 R2,那默认已经是4.0了。

二、打开PowerShell

我的电脑是win10系统,在win图标右键->选择Windows PowerShell,即可打开。

三、PowerShell脚本及编辑工具

PowerShell脚本命令可直接在窗口输入

eg.
Write-Host "Hello Word!"

对于PowerShell的编辑工具,可直接双击使用记事本编辑,但是对于新手可使用VSCode进行开发。

     下载链接

下载好后可在扩展中搜索powershell,安装第一个扩展就可以显示powershell智能提示了。

四、如何运行制作好的PowerShell脚本

1、如果脚本路径中包含空格,需要使用& "脚本路径"来执行,eg.  & "C:\P A T H\\script.ps1"

2、使用cd命令切换到脚本所在目录,再使用执行  ./脚本名.ps1

2、若文件路径不包含空格,可直接输入文件路径执行,eg.  C:/path/test.ps1

五、简单语法介绍

大致知识点介绍,详细介绍可在下边的教程网址学习。

罗列一些常用命令知识点,定义变量、管道、条件判断、循环、函数

1、定义变量

定义变量:$info = "你好"

输出变量:$info

2、管道

在Shell中一个重要的基本概念就是管道(pipeline),即在一组命令中,输出的命令结果成为下一个命令的输入参数。管道的概念与真实生活中的生产线比较相似:在不同的生产环节进行连续的再加工。

“Get-ChildItem”意思是获取当前路径的所有项目,“|Sort-Object -Descending Name”意思是查看上一步结果,按照Name进行倒叙排列。

常用的管道命令

Compare-Object: 比较两组对象。
ConvertTo-Html: 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。
Export-Clixml: 创建对象的基于 XML 的表示形式并将其存储在文件中。
Export-Csv: 将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV) 字符串,并将这些字符串保存到
一个 CSV 文件中。
ForEach-Object: 针对每一组输入对象执行操作。
Format-List: 将输出的格式设置为属性列表,其中每个属性均各占一行显示。
Format-Table: 将输出的格式设置为表。
Format-Wide: 将对象的格式设置为只能显示每个对象的一个属性的宽表。
Get-Unique: 从排序列表返回唯一项目。
Group-Object: 指定的属性包含相同值的组对象。
Import-Clixml: 导入 CLIXML 文件,并在 Windows PowerShell 中创建相应的对象。
Measure-Object: 计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数。
more: 对结果分屏显示。
Out-File: 将输出发送到文件。
Out-Null: 删除输出,不将其发送到控制台。
Out-Printer: 将输出发送到打印机。
Out-String: 将对象作为一列字符串发送到主机。
Select-Object: 选择一个对象或一组对象的指定属性。它还可以从对象的数组中选择唯一对象,也可以从对象数组的开头或末尾选
择指定个数的对象。
Sort-Object: 按属性值对象进行排序。
Tee-Object: 将命令输出保存在文件或变量中,并将其显示在控制台中。
Where-Object: 创建控制哪些对象沿着命令管道传递的筛选器。

3、条件判断

比较运算符
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含

布尔运算

-and :和
-or :或
-xor :异或
-not :逆

求反

求反运算符为-not

条件判断语法

Where-Object

IF-ElseIf-Else

Switch

4、循环

ForEach-Object

Foreach

Do While

For

Switch

5、函数

函数定义很简单

Function FuncName (args[])
{
code;
}
eg.
Function test($name,$age)
{
if($name -ne $null -and $age -ne $null){
Write-Host "输入的name参数为:$name";
Write-Host "输入的age参数为:$age";
}elseif($name -ne $null){
Write-Host "输入的name参数为:$name";
}elseif($age -ne $null){
Write-Host "输入的age参数为:$age";
}else{
Write-Host "未传入参数";
}
}
# 调用test函数并传入参数
test -age "" -name "张三"

六、脚本教程

目前我是在以下两个网站学习的,主要是简单语法学习。

PowerShell中文博客  https://www.pstips.net/

微软官方的PowerShell文档  网址

PowerShell学习记录的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

随机推荐

  1. Navicat for MySQL 使用

    库创建标准 表查看sql样式

  2. java上传大文件解决方案

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在10G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以10G来进行限制. 第一步: 前端修改 由于项目使用的是BJ ...

  3. hdu 5753

    Permutation Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  4. P1121 环状最大两段子段和(DP)

    P1121 环状最大两段子段和 难度 提高+/省选- 题目描述 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. 输入输出格式 输入格式: 输入文件 ...

  5. css实现9宫格

    html <div class="nine"> <ul> <li>1</li> <li>2</li> < ...

  6. Mysql模拟故障恢复案例过程

    一.数据库全备,全备脚本如下: [root@leader script]# cat bak_all.sh #!/bin/bash#Date: 2019-12-08#Author: chan#Mail: ...

  7. BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!

    点击上方“程序员江湖”,选择“置顶或者星标” 你关注的就是我关心的! ​ 作者:BOSS直聘 来源:BOSS直聘 作者:BOSS直聘(ID:bosszhipin),领先的移动互联网招聘APP,为求职者 ...

  8. vxWorks下常用的几种延时方法

         在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等.这就需要利用定时器机制来计量特定长度的时间段. ...

  9. Boost无锁队列

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/okiwilldoit/article/details/50970408 在开发接收转发agent时, ...

  10. oracle性能诊断sql

    --1.阻塞及等待事件信息查询-- 查询所有会话的状态.等待类型及当前正在执行的SQL脚本select t.SID, t.SERIAL#, t.Status, t.Action, t.Event, t ...