PowerShell学习记录
一、简介——连接
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学习记录的更多相关文章
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
- UWP学习记录9-设计和UI之控件和模式6
UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...
- UWP学习记录8-设计和UI之控件和模式5
UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...
- UWP学习记录7-设计和UI之控件和模式4
UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...
随机推荐
- MySQL 临时修改全局变量
1.查询全局变量: SHOW GLOBAL VARIABLES [LIKE '%search key%']; 2.修改全局变量: SET GLOBAL auto_increment_increment ...
- ESlint配置案例及如何配置
1.中文官网: https://eslint.cn/ 2.先看一个写好的eslint规则: 3.下面再给一个例子 module.exports = { "parser": &quo ...
- 【bug解决】ios微信浏览器中背景音乐无法播放
我记得之前在一次项目中,出现过浏览报错: 当时的文档链接如右:[解决]HTML5新标签audio的autoplay自动播放属性失效的解决方案 所以在这次H5的制作中,我使用了iframe来加载音频文件 ...
- DataGrid控件的列
四种列(局限性较大)https://www.cnblogs.com/lonelyxmas/p/9442604.html 更强大的模板列(如控件居中等)https://www.cnblogs.com/l ...
- Mysql教程-自动备份数据库
批处理命令: set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%" set"hMs=%time:~,2%%time:~3,2%%tim ...
- 日照学习提高班day3测试
A 思路: 一看到'#''.'什么的就想到搜索怪我怪我... 这道题勉强说是搜索别打我qwq 1)因为不重复,所以首先要判断是否%5==0,若不满足,直接输出NO 2)弄个vis数组记录是否被搜过,如 ...
- Spring——bean的五种作用域和生命周期
一.Bean的作用域 1.当一个bean的作用域为Singleton,那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回 ...
- XOR Guessing
E. XOR Guessing 第一次做这种交互题,刚开始还看不懂,现在已经差不多可以理解了,清空缓存区用cout<<endl;即可,需要注意的是,如果用fflush(stdout)来 ...
- Data Science Competition中的工具汇总
除了基础的pandas,scikit-learn,numpy,matplotlib,seaborn以外 ( 1 ) category_encoders github 属于scikit-learn co ...
- C++入门经典-例8.6-多重继承的构造顺序
1:单一继承是先调用基类的构造函数,然后调用派生类的构造函数,但多重继承将如何调用构造函数呢?多重继承中的基类构造函数被调用的顺序以派生表中声明的顺序为准.派生表就是多重继承定义中继承方式后面的内容, ...