PowerShell入门教程

PowerShell基础语句

1、进入Powershell环境

开始–运行–powershell

开始–运行–cmd–powershell

不同系统内置的powershell系统版本是不一样的

查看版本:$psversiontable

2、powershell功能特别强大

使用方便

命令命名方式简单:动词+名词

get-service 获取系统服务

get-help get-service 查看命令的帮助信息

面向对象

绑定了.net开发平台

强大的兼容性,与cmd、vbs可直接调用

扩展性:可管理AD域、虚拟化等产品

3、自定义powershell控制台

右击标题栏–属性

编辑模式–快捷/普通

4、 powershell快捷键

ALT+F7 清除命令的历史记录

Pgup Pgdown 翻页

Enter 执行当前命令

End 光标移至末尾

Del 删除光标后的命令字符

ESC 清空当前命令行

F2 自动补充历史命令至指定位置

F4 删除命令行至光标右边指定的字符处

F7 对话框显示命令行历史记录

F8 检索包含指定字符的命令行历史记录

F9 根据编号选择历史命令

上/下 翻看历史命令

左/右 左右移动光标

Home 移至命令行最左端

Backspace 从右侧删除命令行字符

CTRL+C 取消命令执行

Tab 自动补齐命令或文件名

5、 管道和重定向

ls | Format-Table mode,name

ls | Format-Table mode,name > 1.txt

ls | Format-Table mode,name >> 1.txt

type 1.txt

6. Powershell数学运算符
      • / %
7、执行外部命令

.\ipconfig

.\netstat -na

.\notepad

命令程序必须在system 32目录中

如果命令程序不在目录中,需要将文件复制到目录中或修改环境变量

查看系统变量:$env:Path

添加环境变量: e n v : p a t h = env:path= env:path=env:path+“目录名称” ----临时生效

图形化设置环境变量 ----永久生效

8、 Powershell命令集

查看命令集:get-command

命令类型:Alias 别名

​ Function 函数

​ Cmdlet 内部命令

powershell命令是cmd命令的扩展,一般情况下,cmd命令在powershell中是可以使用

查看命令的帮助信息:get-help get-command

查看系统进程:get-process

查看当前会话的别名:get-alias

查看历史命令:get-history

查看日期:get-date

9、 Powershell别名使用

get-help get-command

get-childitem命令的别名 dir ls 显示文件

get-alias -name ls 查看是谁的别名

查询以remove开头的别名

Get-Alias | where {$_.definition.startswith(“Remove”)}

对分组显示的所有别名按个数以降序进行排列

Get-Alias | Group-Object Definition |sort -Descending Count

10、自定义别名

自定义别名:set-alias -name pad -value .\notepad

删除别名:del alias:pad

导出别名:export-alias demo*.ps1*

强制导入别名:import-alias -force demo.ps1

11、变量

定义变量:$name=“xiaoming”

$age=25

输出变量:$name

变量对大定是不区分的: a 和 a和 aA是同一个变量

定义特殊名称的变量:${i am a”()}=100

定义变量时可以跟表达式:$n=(7*6+8)/2

​ 也可以跟命令:$n=ls

同时给多个变量赋值: s u m 1 = sum1= sum1=sum2=200

12、变量的操作

改变变量的值:$sum1=10

​ $sum2=20

t e m p = temp= temp=sum1

s u m 1 = sum1= sum1=sum2

s u m 2 = sum2= sum2=temp

s u m 1 , sum1, sum1,sum2

查看当前使用的变量有哪些:ls variable:

查看指定的变量:ls variable:su*

查看变量是否存在:test-path variable:sum1

删除变量:del variable:sum1

​ Remove-Variable sum2

13、自动变量(启动时会自加载,只能读不能改)

$home 当前用户根目录

$pid 当前进程号

$$ 上一个命令

$? 上一个命令是否执行成功

$null 空变量

14、环境变量

查看环境变量:ls env:

​ ls env:os

​ $env:name=“xiaoming” 添加环境变量

$env:JAVA_HOME=“C:\Program Files\Java\jdk1.8.0_66”

del env:name 删除环境变量

[environment]::setenvironment variable(“PATH”;“d:”;“user”) 修改

[environment]::getenvironment variable(“PATH”;“d:”😉 显示

15、本执行策略的设置

(1)写一个.bat的脚本程序

​ echo hello world!!

(2)写一个.ps1的脚本程序

s u m = 46 S w i t c h ( sum=46 Switch( sum=46Switch(sum)
{
{$_ -lt 50 -and KaTeX parse error: Expected 'EOF', got '}' at position 9: _ -gt 40}̲ {"此?数簓小?于?0大洙…_ -eq 50} {“此?数簓等台?于?0”}
{$_ -gt 50} {“此?数簓大洙?于?0”}
}

16、与其他脚本的相互调用

(1)在cmd中运行powershell脚本

C:\Users\ASUS-PC\Desktop>powershell .\demo.ps1

(2)如何Powershell中运行.bat脚本

查看策略:Get-ExecutionPolicy

​ Restricted 禁止

Get-help set-ExecutionPolicy

Set-ExecutionPolicy RemoteSigned 允许策略

C:\Users\ASUS-PC\Desktop>.\demo.bat

(3)如何在powershell中运行vbs脚本

将vbs脚本拖拽到powershell环境中

17、条件操作

算术运算符:-eq(=) -nq(不等于) -gt (大于) -lt(小于) -contains(包含) -notcontains(不包含)

89 -eq 99

1gb -gt 1mb

(1,2,3) -contains 1

(1,2,3) -notcontains 1

逻辑运算符:-and -or -not

1,5,9,0 -ne 0 不显示等于0的数字

1,5,9,0 -eq 0 显示等于0的数字

1,5,9,0 -contains 0 判断是否包含0

18、条件判断:if语句

$num=200

if ($num -gt 90) {“此?数簓大洙?于?0”}

if ($num -lt 90) {“此?数簓小?于?0”}

if ($num -eq 100) {“此?数簓等台?于?00”}

修改为:

$num=80

if ( n u m − g t 90 ) " 1 " e l s e i f ( num -gt 90) {"1"} elseif ( numgt90)"1"elseif(num -lt 90) {“0”} else {90}

19、条件判断:swith语句
举例1:

$sum=56

Switch($sum)

{

{$_ -lt 50} {“此数小于50”}

{$_ -eq 50} {“此数等于50”} 或 50 {“此数等于50”}

{$_ -gt 50} {“此数大于50”}

}

举例2:

$sum=56

Switch($sum)

{

{$_ -lt 50 -and $_ -gt 40} {“此数小于50大于40”}

{$_ -eq 50} {“此数等于50”}

{$_ -gt 50} {“此数大于50”}

}

20、 循环语句:foreach语句

$arr=1…10

foreach ($n in $arr)

{

n ∗ n* nn/2

}

21、循环语句:while语句

n u m = 15 w h i l e ( num=15 while( num=15while(num -gt 10)
{
$num
n u m = num= num=num-1

}

$num=15
do
{
$num
n u m = num= num=num-1

}
while($num -gt 10)

22、Break(跳出整个循环,不在执行)
continue(只跳出满足条件的循环)关键字

n u m = 1 w h i l e ( num=1 while( num=1while(num -lt 6)
{
if($num -eq 4)
{
break
}
else
{
$num
$num++
}
}

n u m = 1 w h i l e ( num=1 while( num=1while(num -lt 6)
{
if($num -eq 4)
{
$num++
continue
}
else
{
$num
$num++

​ }

}

23、循环语句:for语句

n u m = 0 f o r ( num=0 for( num=0for(i=1; i − l e 100 ; i -le 100; ile100;i++)
{
n u m + = num+= num+=i

}
$num

24、循环语:switch

n u m = 1..100 s w i t c h ( num=1..100 switch( num=1..100switch(num)
{
{(KaTeX parse error: Expected group after '_' at position 1: _̲%2) -eq 0} {"()这是一个偶数"}
{(KaTeX parse error: Expected group after '_' at position 1: _̲%2) -eq 1} {"(
)这是一个奇数"}

}

25、数组的创建

$arr=1,“hello world”
$arr.GetType()
$arr

26、访问数组

$arr+=“AA”: 增加元素到数组

$arr[] :

$arr.Count 统计元素个数
$arr 显示

27、自定义函数和调用

(1)不指定参数
function myping
{
ping www.baidu.com
}
myping
(2)传递参数
function myping($site)
{
ping $site
}
myping www.baidu.com

function myping( n a m e , name, name,age)
{
$content=“I am $name,and I am $age years old!”
write-host $content
}
myping “xiaoming” 25

28、powershell函数返回值

function add( n u m 1 , num1, num1,num2)
{
s u m = sum= sum=num1+$num2
return KaTeX parse error: Expected 'EOF', got '}' at position 5: sum }̲ add 3 4 查看返回值…num1,$num2)
{
s u m = sum= sum=num1+$num2
$sum.GetType().fullname
return KaTeX parse error: Expected 'EOF', got '}' at position 5: sum }̲ add 3.1 4 返回多…num1, n u m 2 , num2, num2,sum3)
{
v a l u e = value= value=num1, n u m 2 , num2, num2,sum3
$value.GetType().fullname
$value[2]
}
add 3 4 9

29、powershell定义文本

打印一句话: ‘hello world’
打印一句话带变量: “hello world! $(Get-Date)”
支持表达式:"hello world! $(59)"
单引号: '“hello world!” ( 5 ∗ 9 ) ′ 转 义 字 符 : " h e l l o w o r l d ! ‘ " (5*9)' 转义字符: "hello world!`" (59)"helloworld!"(5
9)" "n 换行符
r 回车符t 制表符
`b 退格符

30.powershell实现用户交互

i n p u t = r e a d − h o s t " 请 输 入 你 的 姓 名 : " " 你 好 , 你 输 入 的 姓 名 是 : input=read-host "请输入你的姓名:" "你好,你输入的姓名是: input=readhost"""input"

31.powershell格式化字符串

$name=“xiaoming”
$age=25
$body=“strong”
“my name is $name,i am $age years old,and my body is $body”

name=“xiaoming”
$age=25
$body=“strong”
“my name is {0},i am {1} years old,and my body is {2}” -f n a m e , name, name,age,$body
“my name is {0},i am {1} years old,and my body is {2},{3}” -f n a m e , name, name,age,$body,(3*6)

32.String对象方法

分隔字符串
$str=“c:\windows\system32\demo.txt”
$str.Split("") 分隔字符
$str.Split("").GetType() 查看类型
$str[0,1] 数组索引
$str.EndsWith(“txt”) 是否以txt结尾
$str.cont(“txt”) 是否包含txt字符串
$str.CompareTo(“xxy”) 字符串是否相等
$str.indexof(“w”) 字符w的位置
$str.Insert(3,“xxxx”) 插入字符
$str.Replace(“c”,“88888”) 替换

  • 12
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值