PowerShell基础

1. Tab键补全

有时候不记得指令全称,只记得开头几个字母,使用Tab键可显式建议选项,再次按Tab可以往后翻,Shift+Tab可以往前翻。

2. 查看指令类型

Get-Command -Name Get-Alias

指令是遵循一定的格式规范的,如动词加名词,下面的指令查询动词为 Get ,名词为 Content 的指令

Get-Command -Verb Get -Noun Content

还可以使用通配符查询

Get-Command -Name *-Content

3. 查看帮助

Get-Help Add-Content

4. 编程功能

PowerShell不单单是一个命令行工具,它还可以进行编程,可以在交互式窗口运行,也可以写成脚本,执行一些自动化的任务。

(1)启用严格模式,以检查错误

Set-StrictMode -Version Latest

(2)变量

变量包括内置变量和自定义变量,比如可以查看内置变量的值:

$MaximumHistoryCount

声明并初始化一个整数类型的自定义变量

$num=1

查看变量类型(是不是很像C#,虽然PowerShell不限制大小写,getType、gettype也可以获取类型,但是使用跟C#一样的风格,就不会那么乱了)

$num.GetType()

查找变量,不带参数的话就列出内存中所有的变量

Get-Variable -Name num

(3)数据类型

布尔值

true false

整数和浮点数

整数类型默认是 Int32,浮点数类型默认是 Double,若要把浮点数转成整数,可以使用下面的语句(四舍五入):

Int32$num

字符串

字符串可以使用单引号,也可以使用双引号,如果是插值字符串(在其中插入一些变量值)就必须使用双引号

str="num=num"

如果变量后面紧接非空字符,为了避免无法识别变量,可以使用大括号把变量名括起来

"num=${num}xxx"

对象

PowerShell也有类似C#中表示空值的 null,不过要加美元符号:null,因为 PowerShell 中一切皆对象,所以值类型也可以赋值为 null,反过来讲,数字也是对象,可以使用下面的指令查看对象的成员:

Get-Member -InputObject $num

如果只查看属性,不看方法的话,可以使用下面的指令(因为数字只有方法,没有属性,所以可以先设置一个字符串类型的值,再用下面的指令查看):

Select-Object -InputObject $num -Property *

若要进一步查看某个成员的详细信息,比如查看 Equals 方法,使用指令:

Get-Member -InputObject $num -Name Equals

自定义对象(PSCustomObject 是 PowerShell 内置的一个类,不是我随意起名哦)

$myObj = PSCustomObject@{Name='Tom';Age=33}

$myObj.Name

$myObj.Age

数组

创建数组

$colorPicker=@('red', 'green', 'blue')

访问数组

$colorPicker0

范围运算符,如1到10可以表示为 1..10(首尾都包含),利用该运算符可以访问数组的子集:

$colorPicker0..1

往数组添加元素,添加单个元素或者添加一个数组都可以

$colorPicker += 'yellow'

$colorPicker += @('pink', 'cyan')

ArrayList

数组一般用来存储数量不变的一组对象,虽然可以添加元素,单每次都要新建一个数组,再销毁旧的数组,大型数组的增删性能就比较差了,这时候使用 ArrayList 比较合适:

$colorPicker=System.Collections.ArrayList@('red', 'green', 'blue', 'yellow')

$colorPicker.Add('pink')

$colorPicker.Remove('red')

字典

字典是用于存储键值对的数据结构,创建方式如下:

$colors=@{

'red' = 0xFF0000;

'green' = 0x00FF00;

'blue' = 0x0000FF

}

访问字典

$colors'blue'

$colors.blue

往字典添加元素

$colors.Add('yellow', 0xFFFF00)

$colors.Add'yellow' = 0xFFFF00

从字典中删除元素

$colors.Remove('red')

相关推荐
yuezhilangniao5 天前
win10中文 以及 PowerShell 开发日常
windows·powershell
无情的西瓜皮6 天前
Win11 26H2 升级路线怎么选:先查版本,再看先决条件
windows 11·powershell·系统更新
学习论之费曼学习法10 天前
无人值守AI内容矩阵实战(10):Windows 上让 Python 进程 7×24 活着
人工智能·windows·python·矩阵·powershell·进程守护
JoePotter12 天前
从零搭建华为云 EVS 每日自动快照:hcloud + PowerShell + 邮件报告实战
华为云·自动化运维·powershell·evs·koocli·快照备份·mailozaurr
JoePotter15 天前
Restic 备份工具使用指南(Windows Server 2019 适配版)
powershell·数据备份·windows server·运维自动化·restic
DogDaoDao18 天前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Vex2une20 天前
PowerShell 7.5新特性解析:跨平台自动化与AI集成实战指南
ai编程·powershell·安全合规·自动化脚本·.net 9·跨平台运维·ssh远程
Vex2une1 个月前
PowerShell 发展史:从命令行外壳到跨平台自动化引擎
windows·自动化·azure·powershell·vs code·脚本语言·dsc
Vex2une1 个月前
PowerShell ISE 到 VS Code 迁移史:从集成脚本环境到现代编辑器工作流
windows·vscode·powershell·powershell ise·powershell 扩展·powershell 7·脚本编辑器
Vex2une1 个月前
Windows PowerShell 发展史:从命令行工具到自动化核心
windows·自动化运维·命令行·powershell·cmd·脚本语言·对象管道