PowerShell 基本语法及常用命令
发布时间:2025-05-23 08:28:07 发布人:远客网络
一、PowerShell 基本语法及常用命令
1.Get-Command:得到所有PowerShell命令,获取有关 cmdlet以及有关 Windows PowerShell命令的其他元素的基本信息。包括Cmdlet、Alias、Function。
3.Get-Help:显示有关 Windows PowerShell命令和概念的信息
4.Get-History:获取在当前会话中输入的命令的列表
5.Get-Job:获取在当前会话中运行的 Windows PowerShell后台作业
6.Get-FormatData:获取当前会话中的格式数据
7.Get-Event:获取事件队列中的事件
8.Get-Alias:获取当前会话的别名
9.Get-Culture:获取操作系统中设置的当前区域性
12.Get-Member:获取对象的属性和方法。
13.Get-Random:从集合中获取随机数或随机选择对象
14.Get-UICulture:获取操作系统中当前用户界面(UI)区域性设置
15.Get-Unique:从排序列表返回唯一项目
16.Get-Variable:获取当前控制台中的变量
17.Get-EventLog:获取本地或远程计算机上的事件日志或事件日志列表中的事件
18.Get-ChildItem:获取一个或多个指定位置中的项和子项
19.Get-Content:获取指定位置的项的内容
20.Get-ItemProperty:获取指定项的属性
21.Get-WmiObject:获取 Windows Management Instrumentation(WMI)类的实例或可用类的相关信息
22.Get-Location:获取当前工作位置的相关信息(如:F:\Users\TaoMin)
23.Get-PSDrive:获取当前会话中的 Windows PowerShell驱动器
24.Get-Item:获取位于指定位置的项
25.Get-Process:获取在本地计算机或远程计算机上运行的进程
26.Get-Service:获取本地或远程计算机上的服务
27.Get-Transaction:获取当前(活动)事务
28.Get-ExecutionPolicy:获取当前会话中的执行策略
二.Set类(set类命令一般都含有参数)
1.Set-Alias:在当前 Windows PowerShell会话中为 cmdlet或其他命令元素创建或更改别名(替代名称)
2.Set-PSDebug:打开和关闭脚本调试功能,设置跟踪级别并切换 strict模式
3.Set-StrictMode:建立和强制执行表达式、脚本和脚本块中的编码规则
4.Set-Date:将计算机上的系统时间更改为指定的时间
5.Set-Variable:设置变量的值,如果该变量还不存在,则创建该变量
6.Set-PSBreakpoint:在行、命令或者变量上设置断点
7.Set-Location:将当前工作位置设置为指定的位置
8.Set-Item:将项的值更改为命令中指定的值
9.Set-Service:启动、停止和挂起服务并更改服务的属性
10.Set-Content:在项中写入内容或用新内容替换其中的内容
11.Set-ItemProperty:创建或更改某一项的属性值
12.Set-WmiInstance:创建或更新现有 Windows Management Instrumentation(WMI)类的实例
13.Set-ExecutionPolicy:更改 Windows PowerShell执行策略的用户首选项。
1.Write-Host:将自定义输出内容写入主机。类似于.net的 write()或者writeline()功能
2.Write-Progress:在 Windows PowerShell命令窗口内显示进度栏
3.Write-Debug:将调试消息写入控制台
4.Write-Verbose:将文本写入详细消息流
5.Write-Warning:写入警告消息
6.Write-Error:将对象写入错误流
7.Write-Output:将指定对象发送到管道中的下一个命令;如果该命令是管道中的最后一个命令,则在控制台上显示这些对象
8.Write-EventLog:将事件写入事件日志
PowerShell的变量无需预定义,可直接使用。当使用一个变量时,该变量被自动声明。
get-variable var#获取单个变量值
get-variable var*#获取多个变量值
结果:This is the 1st string and This is the 2nd string
$date.AddDays(3)#当前时间加三天
一般不需要为PowerShell的变量指定类型。但是也可以强制指定变量类型。
用法一如下:(函数中改变变量值并不影响实际值)
用法二如下:(函数中变量值的改变要用$Script:var的形式)
n-ne 3)#当$n<>3时进行循环操作
用法二如下:switch-casesensitive(表达式)表示区分大小写
用法三如下:switch-regex(表达式)表示正则表达式匹配
执行结果:字母+数字,匹配为:day6
用法四如下:switch-regex(表达式)表示正则表达式匹配表达式可为数组
执行结果:字母+数字,匹配为:day5
用法五如下:switch-wildcard(表达式)表示通配符匹配
1.break用法:break语句出现在foreach、for、while、switch等结构中时,break语句将使windows powershell立即退出整个循环。
2.continue用法:continue语句出现在foreach、for、while等循环结构中时,continue语句将使windows powershell立即退出某一次轮循环,并继续下一轮循环。
PowerShell抛出异常的Throw用法:
返回结果:danger及详细错误信息
PowerShell获取出错信息的用法:
get-process-ea stop#-ea定义错误发生以后该如何继续执行,意同-ErrorAction
get-childitem ada-ErrorAction stop#此处有错误路径ada不存在
执行结果:会出现逐步调试的对话框
本文转自
二、cmd和powershell有什么区别
1、cmd与PowerShell的区别主要体现在以下几个方面:命令集、功能与语法、脚本支持、对象导向、可扩展性、输出格式、跨平台支持,以及历史渊源。
2、在命令集方面,cmd基于MS-DOS的命令语法,命令集相对简单;而PowerShell基于.NET框架的语法,拥有更庞大的命令集。
3、功能与语法上,cmd适合执行基本的文件操作和程序调用,语法简单;PowerShell则支持更高级的功能,如变量、循环、条件语句、正则表达式等。
4、在脚本支持方面,cmd支持简单的脚本,功能和灵活性有限;而PowerShell支持更复杂的脚本,如变量、循环、条件语句等,更适用于自动化任务。
5、对象导向特性上,cmd没有对象导向特性,主要通过字符串和文本来传递数据;PowerShell基于对象导向编程模型,允许对不同的对象进行操作。
6、可扩展性方面,cmd的命令集相对固定,不支持用户自定义扩展;相比之下,PowerShell支持自定义模块和扩展,用户可以根据自己的需求编写,具有一定的可扩展性。
7、输出格式上,cmd的输出以文本形式呈现;而PowerShell还可以输出类似于表格和列表等其他形式。
8、跨平台支持方面,cmd仅在Windows系统上可用;PowerShell则最初为Windows设计,如今也可以在Linux、macOS等操作系统上运行,具有一定的跨平台性。
9、历史渊源方面,cmd起源于MS-DOS,是Windows早期版本的组件;PowerShell则可以追溯到2006年,是微软为应对更复杂的系统管理需求而开发的一款命令行shell和脚本语言环境,基于.NET Framework。
10、各自的优势:cmd的优势在于对于初学者来说容易上手,保持了对早期MS-DOS和Windows脚本的兼容性,几乎所有版本的Windows系统都可以使用,且对计算机运算资源的需求较低;而PowerShell的优势在于提供了丰富的命令集以及强大的管道功能,适用于系统管理和自动化任务,不仅限于Windows系统,还可在Linux和macOS等其他操作系统上运行,支持开发者自定义模块和扩展,有利于满足特定任务的需求,可以处理复杂的系统管理任务,并能够输出XML、CSV等多种格式,便于进行数据处理和整合。