powershell常用命令
1.PowerShell判断数组里面是否包含指定字符串元素
$arrColors = "blue", "red", "green", "yellow", "white", "pink", "orange", "turquoise"
# 判断数组是否包含指定元素
$arrColors -contains "black"
# 判断数组是否包含指定元素(大小写敏感)
$arrColors -ccontains "Green"
# 判断数组是否不包含指定元素
$arrColors -notcontains "violet"
# 判断数组是否不包含指定元素(大小写敏感)
$arrColors -cnotcontains "Green"
2.PowerShell:连接与分隔字符串
一、连接字符串
- 使用"+"连接字符串:将字符串连接在一起,字符串之间没有分隔符。
$string1="abc"
$string2="def"
$string3=$string1+$string2
$string3
- "-Join"连接字符串:
语法:
-Join (String1,String2,String3...) 不使用分隔符连接字符串
String1,String2,String3… -Join "Delimiter" 使用分隔符连接字符串
例1:
$a=-Join("abc","def","ghi")
$a
例2:
$b="abc","def","ghi" -Join ":"
$b
- 使用"*"运算符:字符串自连接
$string1="abc"
$string2=$string1*3
$string2
二、分隔字符串
语法:
-Split String 根据空格分隔字符串
String -Split "Delimiter" [,MaxSubStrings] 根据指定分隔符分隔字符串
例1:
$a="abc def ghi"
-Split $a
例2:
$a="abc:def:ghi"
$a -Split ":"
3.PowerShell中的灵活的参数验证功能
1)普通方式:
function
Get-Weekday
{
param
(
$Weekday
)
"You chose $Weekday"
}
PS>
Get-Weekday
-Weekday
NoWeekday
You chose NoWeekday
2).正则表达式类型的验证方式:
function
Get-Weekday
{
param
(
[
ValidatePattern
(
'Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday'
)]
$Weekday
)
"You chose $Weekday"
}
现在一旦用户输入的字符串与你指定的模式不匹配时,Powershell会抛出一个异常,但是这个异常信息不够友好。在输出参数时,控制台或着ISE编辑器也不能智能提示:
3)使用ValidateSet:
function
Get-Weekday
{
param
(
[
ValidateSet
(
'Monday'
,
'Tuesday'
,
'Wednesday'
,
'Thursday'
,
'Friday'
,
'Saturday'
,
'Sunday'
)]
$Weekday
)
"You chose $Weekday"
}
4.查看、执行服务命令
1)查看windows下的所有服务
Get-Service
或者
sc.exe query
2)查看运行中的服务
Get-Service |findstr "Running"
3)查看某个服务状态
Get-Service -ServiceName Dhcp
或者
sc.exe query Dhcp
4)启动某个服务
sc.exe start Dhcp
4)停止某个服务
sc.exe stop Dhcp
4.write-error、write-warning、$host.UI.WriteErrorLine('内容')、$host.UI.WriteErrorLine('内容')
如果你想在PowerShell控制台上输出错误信息或者警告信息,可以分别使用write-error和write-warning这两条命令。它们会采用系统中默认的字体颜色来打印文本。PowerShell会为你的输出采用一个文本模板。
但是Write-Error会引入一个实际的异常,可能会中断脚本的继续运行。如果你只想输出一个看起来像错误的消息,那不妨试试下面这种靠谱一点的写法:
5.文件或文件夹操作
1)删除文件夹及其下所有文件
Remove-Item D:/uu898work/log -Force -Recurse
2)复制文件
Copy-Item d:\ops\win\nssm.exe c:\windows\system32\