powershell命令教程
powershell命令教程
目录
- powershell命令教程
- 1.管道和重定向
- 2.powershell执行外部命令
- 3.powershell 命令集
- 4.获取别名
- 5.$的用法
- 6.自定义别名
- 7.powershell自动化变量(自动加载变量) 和环境变量
- 8.powershell的脚本文件是ps1,运行时解禁方法
- 9.powershell中条件操作符
- 10.if 语句
- 11.swiitch 语句 开关语句
- 12.foreach 语句
- 13.while 语句
- 14.break和continue
- 15.for 循环
- 16.switch循环
- 17.数组的创建
- 18.访问数组
- 19.函数
- 20.函数返回值
- 21.定义文本 转移符号是着重号`
- 22.实现交互read-host读取输入
- 23.格式化字符串
- 24.string对象方法
- 25.powershell操作注册表
- 26.常见命令
脚本后缀.ps1
常见命令
1.管道和重定向
ls | format-table name,mode
ls | format-table name,mode > demo.txt # 添加 (powershell注释也变成了#)
ls | format-table name,mode >> demo.txt # 增加内容
2.powershell执行外部命令
cmd 中的netstat -ano查看端口信息;route print 打印路由信息,在powershell中一样可以用
notepad
&"notepad" # 如果加引号就要前边加&,才能识别为环境变量。
$ env:
设置的环境变量不会永久生效。如果需要永久设置环境变量,可以使用[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", [System.EnvironmentVariableTarget]::User)
3.powershell 命令集
get-command #获取所有命令
get-help get-command #获取一个帮助
get-process #获取进程
get-alias #获取别名
get-history #获取操作历史
get-date #获取日历
4.获取别名
gc # get-command的别名
get-alias -name ls #查询别名ls的全称
get-alias | where {$_.definition.startswith("Remove")} #查询以remove开头的别名
5.$的用法
$ _
:在管道对象中包含当前对象。$
符号主要用于表示变量,变量名以$
符号开头
$ env:
来访问和设置环境变量
PowerShell中可以使用变量修饰符来指定变量的作用范围,如 $ local
、 $ script
、 $ global
和 $ private
$
符号也可以用作转义字符,用于在字符串中包含特殊字符
$name="xiaoming" # 变量用$符号
$n=ls #将列表目录给变量n
$a,$b,$c=1,2,3
6.自定义别名
set-alias -name pad -value notepad # name是别名 ,value是原来的名字。
export-alias demo.psl #导出别名
import-alias -force demo.psl #导入别名
7.powershell自动化变量(自动加载变量) 和环境变量
$home #这个变量会自动加载,或者叫全局变量
$pid #进程变量
$$ #最后运行的命令
$? #最后运行命令是否成功
ls env: #罗列环境变量
$env:windir #查看winir变量值
$env:name="ddd" #临时设置环境变量不会长久保持,关闭powershell这个环境变量就会消失
#永久设置环境变量,可以使用:#.net方式让用户变量永久设置.对当前user用户生效
[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", "User")
# machine为系统变量
[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", "Machine")
#给PATH环境变量永久增加值
$ newPath = "C:\NewPathToBeAdded"
$ currentPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if (! $ currentPath.EndsWith(";")) { $ currentPath += ";" }
$ newPath = $ currentPath + $ newPath
[Environment]::SetEnvironmentVariable("PATH", $ newPath, "Machine")
#给path临时增加值
$ env:PATH += ";C:\NewPathToBeAdded"
8.powershell的脚本文件是ps1,运行时解禁方法
但运行时可能要解禁功能,解禁方法
get-executionpolicy #查看是否禁用
get-help set-executionpolicy #查看设置帮助
set-executionpolicy RemoteSigned #设置执行策略,这个时候可以运行powershell脚本。
9.powershell中条件操作符
-eq等于 -ne不等于 -gt 大于 -lt小于 -le不小于 -contains包含 -not求反
-and -not xor异或
10.if 语句
$num=100
if($num -gt 90) {"1"} else {-1}
if($num -gt 100) {"1"} elseif($num -eq 100) {"0"} else {"-1"}
11.swiitch 语句 开关语句
$num=56
switch ($num) {
{($_ -lt 50) -and ($_ -gt 40)} {"此数值小于50大于40"}
{$_ -eq 50} {"此数值等于50"}
{$_ -gt 50} {"此数字大于50"}
}
12.foreach 语句
$arr=1..10 #1..10代表1到10
foreach ($n in $arr){
$n*$n+10
}
foreach ($file in dir d:\aa){
if($file.length -gt 1kb){
$file.name
}
}
13.while 语句
$num=13
while($num -gt 10 -and $num -lt 15){
$num
$num=$num+1
}
$num=13
do{
$num
$num=$num+1
}
while($num -gt 10 -and $num -lt 15)
14.break和continue
$num=7
while($num -gt 5){
if($num -gt 10){
break
}
else{
$num
$num+=1
}
}
15.for 循环
$sum=0
for($i=1;$i -lt 100;$i++){
$sum+=$i
}
$sum
16.switch循环
$num=1..10
switch($num){ # 实现遍历的效果
default{"number=$_"}
}
17.数组的创建
$arr=1,2,3,4
$arr2=1..10
$arr -is [array] #判断是否是数组
$arr=@() #空数组
18.访问数组
$arr=1,"hello",(get-date)
$arr[0]
$arr[0..2] #取第0项到第2项,也可以倒序[2..0]
$arr[-1]
$arr.count
19.函数
function myping11{
ping www.baidu.com
}
myping11
function myping($site){
ping $site
}
myping www.baidu.com
write-host是显示命令,类似于echo打印
20.函数返回值
function add($num1,$num2)
{
$sum=$num1+$num2
$sum.gettype().fullname
return $sum
}
$tt=add 3 4
$tt
21.定义文本 转移符号是着重号`
'我的名字是"jack"'
"你好`n恩怨" #`n是转义换行
22.实现交互read-host读取输入
$in=read-host"请输入"
23.格式化字符串
$name,$age="xiaohao",18
"my name is $name"
"my name is {0},age {1}" -f $name,$age
24.string对象方法
$str="c:\windows\system32\demo.txt"
$str.split("\")[-1]
$str.endwith("txt")
$str.contains("windows")
$str.compareto("c:\windows\system32\demo.txt") #比较是否相等
$str.indexof("w")
$str.insert(3,"we")
$str.replace("w","W")
25.powershell操作注册表
cd hkcu: #进入注册表hkey_Current_user
cd hklm:
Get-itemProperty
new-items
26.常见命令
Get - Service | Where - Object {$_.Status -eq "Running"} 可以筛选出正在运行的服务。
Start - Service - Name "Spooler" :用于启动名为“Spooler”(打印后台处理程序服务)的服务
Stop - Service - Name "Spooler" :则用于停止该服务。
dir –r | select string "searchforthis" 递归搜索某个字符串
使用内存找到五个进程——ps | sort –p ws | select –last 5
递归一系列的目录或文件夹——Get-ChildItem –Force c:\directory –Recurse
在目录里移除所有文件而不需要单个移除——Remove-Item C:\tobedeleted –Recurse
重启当前计算机——(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)
获取当前计算机的BIOS信息——Get-WmiObject -Class Win32_BIOS -ComputerName
get-location 获取当前工作目录
get-itemProperty -path <路径> -name <属性名>
get-service -name "winupdate" #查看特定服务
get-service | where-object($_.status -eq "Running") #过滤运行中的服务
get-process -name "chrome" #按照名称过滤进程
get-childitem env: 查看环境变量,或者输入$env:path
restart-computer -force