WindowsPowerShell基本语法及常⽤命令
Get/Set/Write类
⼀ Get类
1.Get-Command : 得到所有PowerShell命令,获取有关 cmdlet 以及有关 Windows PowerShell 命令的其他元素的基本信息。包括Cmdlet、Alias、Function。
2.Get-Process(ps) : 获取所有进程
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 :获取操作系统中设置的当前区域性
10.Get-Date :获取当前⽇期和时间
类型:[DateTime]
11.Get-Host : 获取表⽰当前主机程序的对象
12.Get-Member : 获取对象的属性和⽅法。
13.Get-Random : 从集合中获取随机数或随机选择对象
14.Get-UICulture : 获取操作系统中当前⽤户界⾯ (UI) 区域性设置
15.Get-Unique : 从排序列表返回唯⼀项⽬
16.Get-Variable :获取当前控制台中的变量
17.Get-EventLog : 获取本地或远程计算机上的事件⽇志或事件⽇志列表中的事件
18.Get-ChildItem : 获取⼀个或多个指定位置中的项和⼦项
Get-ChildItem$pwd-recurse
19.Get-Content : 获取指定位置的项的内容
20.Get-ItemProperty :获取指定项的属性
21.Get-WmiObject : 获取 Windows Management Instrumentation (WMI) 类的实例或可⽤类的相关信息
22.Get-Location(pwd) :获取当前⼯作位置的相关信息
$PSScriptRoot:获取powershell脚本所在⽬录
$a=$PSScriptRoot
$a="$a\
cp $a "c:\"
23.Get-PSDrive:获取当前会话中的 Windows PowerShell 驱动器
24.Get-Item:获取位于指定位置的项
25.Get-Service (gsv): 获取本地或远程计算机上的服务
26.Get-Transaction :获取当前(活动)事务
27.Get-ExecutionPolicy :获取当前会话中的执⾏策略
⼆.Set类 (set类命令⼀般都含有参数)
1.Set-Alias : 在当前 Windows PowerShell 会话中为 cmdlet 或其他命令元素创建或更改别名(替代名称)
如:Set-Alias aaa Get-Command
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 执⾏策略的⽤户⾸选项。
三.Write类
1.Write-Host : 将⾃定义输出内容写⼊主机。类似于的 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变量、常量、数组:
⼀、变量
常见变量类型如下:
[int] 、[long]、[single] 、[double]、[decimal]
[char] 、[string]
[bool] 、[byte]
[array] :数组对象
[xml] :XML对象
[hashtable] :哈希表对象,类似于⼀个字典对象
强制指定变量类型:
$b = 5  #包含其他类型会出错
PowerShell的变量⽆需预定义,可直接使⽤。当使⽤⼀个变量时,该变量被⾃动声明。变量以 $ 符号开头。如:$a
PowerShell普通变量:
1.给变量赋值:
⽅式⼀:
$a = "This is a string"
$b = 123
$c = 0.125
⽅式⼆:
Set-Variable var 100
Set-Variable var1 ”test“
Set-Variable va2 800
2.获取变量值
get-variable var#获取单个变量值
get-variable var*#获取多个变量值
3.清空变量值
clear-variable var
4.删除变量
remove-variable var
5.⽤+号连接两个字符串变量
6.变量的⽅法使⽤$var.***()
PowerShell特殊变量:
PowerShell的特殊变量由系统⾃动创建。⽤户变量名称不应该和特殊变量相同。
$^ :前⼀命令⾏的第⼀个标记
$$ :前⼀命令⾏的最后⼀个标记
$_ :表⽰表⽰当前循环的迭代变量。
$? :前⼀命令执⾏状态,成功(Ture)或者失败(False)
$Args :为脚本或者函数指定的参数
$Error :错误发⽣时,错误对象存储于变量 $Error 中
$Foreach :引⽤foreach循环中的枚举器
$Home :⽤户的主⽬录
$Host :引⽤宿主 POWERSHELL 语⾔的应⽤程序
$Input :通过管道传递给脚本的对象的枚举器
$LastExitCode :上⼀程序或脚本的退出代码
$Matches :使⽤ –match 运算符到的匹配项的哈希表
$PSHome :Windows PowerShell 的安装位置
$profile :标准配置⽂件(可能不存在)
$StackTrace : Windows PowerShell 捕获的上⼀异常
$Switch :switch 语句中的枚举器
⼆、常量
PowerShell常量的值永远不会变。常量不能被删除。
使⽤常量之前,需要通过Set-Variable来创建常量,且指定⼀些参数来使它等于某个常量。
当使⽤常量的时候,必须⽤$开头。但是,使⽤Set-Variable定义常量时,不可⽤$符号开头。
例如:
$aryComputers = "loopback", "localhost"  #数组变量
Set-Variable -name intDriveType -value 3 -option constant  #常量定义常量:intDriveType 值:3
foreach ($strComputer in $aryComputers)  #循环遍历数组对象
{"Hard drives on: " + $strComputer
#获取wmi对象分类:win32_logicaldisk 电脑名称:$strComputer 源⾃数组对象电脑过滤条件:drivetype = 3 ,驱动器类型为3
Get-WmiObject -class win32_logicaldisk -computername $strComputer|
Where {$_.drivetype -eq $intDriveType}}
三、数组
PowerShell中创建数组的⽅式⾮常简单:
创建空数组:$a=@()
$arrName = "LOGONSERVER","HOMEPATH", "APPDATA","HOMEDRIVE"
和创建变量⽅式⼀样,只是赋值时可以付多个值。
对于全是数字可以⽤:$a=1..7创建
使⽤数组⽅式:$arrName[0] :表⽰数组中第⼀个数组项的值
数组序号从0开始
PowerShell中对数组进⾏插⼊、删除、添加数组元素的操作是很不⽅便,⽽且效率也是很低下的。那是因为数组对象本⾝并没有插⼊和删除的功能,每次的操作都是将数组整个拷贝到⼀个新的数组中。这个过程太消耗资源。
建议采⽤数组列表ArrayList
$array = 1..10
$arraylist = $array
$arraylist.RemoveAt(4)
$null = $arraylist.Add(11)
$arraylist.Insert(0,'新元素')
$arraylist
解释⼀下这段代码。
1、定义了⼀个数组,包含1到10,⼀共10个数组元素。
2、将$array数组变量赋值给$arraylist变量,这样就将数组变成了ArrayList
3、分别执⾏RemoveAt()、Add()、Insert()等操作
⼀定要记住,这样做不仅仅是为了⽅便写代码,它将带来事实上的效率提升。
PowerShell注释⽤法:
单⾏注释:#
多⾏注释:<# content #>
PowerShell运算符⽤法:
运算符如下:
1.算术⼆元运算符:
+加、串联
-减
*乘(⽤于字符串是倍增,和python中字符串⽤法⼀样)
shell命令属于什么语言/除
%模
2.赋值运算符
=  +=    -=    *=    /=  %=
3.逻辑运算符
-!不等于
-not⾮
-and且
-or或
4.⽐较运算符(可在运算符前加上 i 或者 c ,以指定是否区分⼤⼩写)
-eq等于(-ceq  区分⼤⼩写的等于)
-ne不等于
-gt⼤于
-ge⼤于等于
-
lt⼩于
-le⼩于等于
-contains包含(字符串或数组对象包含其它元素)
⽤法如下:
此数组中是否包含3:          1,2,3,5,3,2 –contains 3
返回所有等于3的元素:        1,2,3,5,3,2 –eq 3
返回所有⼩于3的元素:        1,2,3,5,3,2 –lt 3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。