powershell学习随笔
- 本笔记主要用于快速回顾知识点,请不要将其当做系统的powershell教程
1. 数学运算符
- 1gb/1mb
1gb/1mb*18kb
- 1gb -gt 1mb ->-gt用于判断是否相等
- 0xabc ->会自动转换为十进制
2. powershell执行外部命令
- 输入&"notepad" 或 输入:notepad均可 -> 打开notepad
- &"绝对路径"
- 题外话:
- 使用$env:path ->可以查看系统变量
- $env:path=$env:path+"绝对路径" ->使用命令添加环境变量(只生效一次)
3. powershell命令集
- powershell的目录基本上都采用:动词+名词 的形式
- get-command:可以查看所有命令
- get-help:查看命令帮助
- get-process:获取进程信息
- get-alias:获取当前会话的别名
- get-history:浏览历史命令
- get-date:获取当前时间
4. powershell别名
- get-help 命令 :也可以用来查看该命令是否有别名
- get-alias -name 命令:可以用来查看该命令的真实名称
- get-alias | where
- $_:表示当前的元素
- get-alias | group-object definition | sort -descending Count:将别名最多的排在最前面
- set-alias -name 别名 -value 被命名别名的命令(自定义别名,临时生效)
- set-alias -name pad -value notepad
- del alias:别名(删除别名)
- export-alias demo.ps1(导出别名信息)
- import-alias -force demo.ps1(导入别名信息)
5. powershell变量基础
- 定义一个字符串变量:
- $name="xiaoming"(字符串型)
- 打印$name变量:$name
- 定义一个数字型变量:
- $age=26(数字型)
- 定义一个花里胡哨的变量:
- ${"i am a" var()}="hello"
- 打印:$
- 如果你的变量名如上非常花里胡哨,最好加一个大括号括住你的变量名(当然,肯定是不建议使用这样的变量名的)
- $变量名=数学表达式
- $n=(7*6+8)/2
- $n
- $变量名=命令
- $n=ls
- $n
- 可以同时为变量$num1和$num2赋值:35
- $num1=$num2=35
- $num1
- $num2
- 注意:
- powershell中对大小写不敏感,$a与$A是相同的
6. powershell变量操作
- 交换变量值
$num1=10 $num2=20 $num1,$num2=$num2,$num1
- 判断变量是否存在
- test-path variable:变量名
- test-path variable:num1(查看变量num1是否存在)
- 查看变量
- ls variable:(查看当前正在使用的变量)
- ls variable:num*(查看以num开头的变量)
- ls vatiable:变量名(查看指定变量名的变量)
- 删除变量
- del variable:变量名
- 当然也可以使用一下命令来操作变量,可以达到与上面命令相同的效果:
- get-variable 变量名(查看变量)
- remove-variable 变量名(删除变量)
- new-variable 变量名(将变量变为只读)
7. powershell自动化变量
- 所谓的“自动化变量”就是指:powershell一旦打开就会自动加载的变量
- $home:当前用户的根目录
- $pid:当前powershell会话的进程标识符(只读)
- $$:显示上一条所运行的命令
- $?:显示上一条命令是否成功运行
8. powershell环境变量
- 查看当前的环境变量
- ls env:
- 查找以na开头的环境变量
- ls env:na*
- 打印环境变量的OS的值
- $env:OS
- 自定义/更新环境变量的值(临时生效)
- $env:name="liming"
- 删除环境变量
- del env:name
- 设置和获取【用户环境变量】(只对当前用户生效)
9. powershell脚本执行策略
- 获取powershell当前执行的脚本策略
- get-executionpolicy
- 设置powershell当前执行的脚本策略
- set-executionpolicy 策略
- set-executionpolicy RemoteSigned
10. powershell与其他脚本程序的互相调用
- 执行bat脚本/vbs脚本/powershell脚本
- 直接绝对路径/相对路径进行运行
- 在cmd中执行powershell脚本
- powershell "&'demo.ps1'"
11. powershell条件操作符
- -eq:等于
- -ne:不等于
- -gt:大于
- -lt:小于
- -le:小于等于
- -not:取反
- -and:与
- -or:或
- -xor:异或
- -contains:包含
- (1,2,3) -contains 1 返回true
- -notcontains:不包含
- 筛选出不等于1的值:1,2,3,4 -ne 1
12. powershell条件判断
- 【if】
- 实例:
$num=100 if($num -gt 90) {"1"} else {"-1"} if($num -gt 100) {"1"} elseif($num -eq 100) {"0"} else{"-1"}
- 【switch】
- 实例(if)
$number=55 if($number -gt 50 -and $number -lt 60){ "此数值大于50小于60" }elseif($number -eq 50){ "此数值等于50" }else{ "此数字小于50" }
- 实例(switch)
$number=50 switch($number){ {($_ -lt 50) -and ($_ -gt 40)} {"此数字小于50且大于40"} {$_ -eq 50} {"此数值等于50"} 这行代码也可以写为:50 {"此数字等于50"} {$_ -gt 50} {"此数值大于50"} }
- 实例(if)
13. powershell循环结构
- 【foreach】
- 实例1:
$arr=1..10 foreach($n in $arr){ $n*$n+10 }
- 实例2:
$path_value=dir f:\all --将命令的执行结果赋值给 $path_value变量 foreach($file in $path_value){ if($file.length -gt 1kb){ $file.name } }
- 实例1:
- 【while】
- 实例1:(while)
$num=15 while($num -gt 10){ $num $num=$num-1 }
- 实例2:(do while)
$num=15 do{ $num $num=$num-1 }while($num -gt 10)
- 实例1:(while)
- 【for】
- 实例1:
$sum=0 for($i=1;$i -le 100;$i++){ $sum=$num+$i } $sum
- 实例1:
- 【switch循环】
- 实例1:
$num=1..10 switch($num){ default{"number=$_"} }
- 实例2:
$num=1..10 switch($num){ {($_ % 2) -eq 0} {"$_是偶数"} {($_ % 2) -ne 0} {"$_是奇数"} }
- 实例1:
- break和continue关键字的使用
- 实例1:(break)
$num=1 while($num -lt 6){ if($num -eq 4){ $num++ break }else{ $num $num++ } }
- 实例2:(continue)
$num=1 while($num -lt 6){ if($num -eq 4){ $num++ continue }else{ $num $num++ } }
- 实例1:(break)
14. powershell数组的创建与访问
- 定义数组:
- $arr1 -is [array] -用来判断是否是数组
$arr1=1,2,3,4 $arr2=1..5 $arr3=1,"hello world" $arr4=@() -->空数组 $arr4=@(1,2,3,4) $arr5=,"nicai",1 $arr6=ipconfig
- 访问数组:
$arr=1,"hello world",(get-date) $arr[0] -->访问第一个元素 $arr[0,1] -->访问第一个和第二个元素 $arr[-1] -->访问最后一个元素 $arr[0..2] -->访问第1,2,3元素 $arr[0..2].count -->访问元素的个数 $arr[($arr.count)..0] -->逆序访问
- 为数组添加元素:
$arr=1,"nicai",(get-date) $arr.count $arr+="hahaha" $arr.count
15. powershell自定义函数和调用
- 函数的定义与调用:
- 实例1:
function myping($site){ ping $site } myping www.baidu.com -->调用
- 实例2:
function my($name,$age){ $content="i am $name, and i am $age years old" write-host $content } my "nicai" 25
- 实例1:
- 函数的返回值
- 实例1:
function add($num1,$num2){ $sum=$num1+$num2 return $sum } add 1 3
- 实例2:
function add($num1,$num2){ $sum=$num1+$num2 $sum.gettype().fullname -->返回值的类型全名 return $sum } add 3 4
- 实例3:
function add($num1,$num2){ return $num1,$num2 -->可以返回多个值 } add 3 4
- 实例4:
function add($num1,$num2,$num3){ $value=$num1,$num2,$num3 $value.gettype() -->返回的结果为:数组类型 return $value } add 1 2 3
16. powershell定义文本
- 实例1:
"hello world $(get-date)"
"hello my name is 'nicai'" -->这样写可以将单引号显示出来
"hello my name is `"nicai`"" -->powershell中将反引号作为转义符号
"你好`n朋友" -->powershell的换行符:`n
17. powershell实现用户交互
- 接收用户输入:
$input=read_host "请输入您的姓名"
"您好,您输入的姓名是:$input"
18. powershell格式化字符串
- 实现格式化需要参数:-f
- 实例1:
$name="nicai"
$age=25
$body="strong"
"My name is $name, i am $age years old, and my body is $body"
"My name is {0}, i am {1} years old, and my body is {2},{3}" -f $name,$age,$body,(3*6) -->格式化输出(效果与上面的相同)
19. powershell字符串对象方法
- 实例1:
$str="c:\windows\system32\demo.txt"
$str.split("\").gettype()
$str.split(".")[-1] -->返回字符串“txt”
$str.endwith("txt") -->判断该字符串是否是以字符串来结尾的
$str.contains("window") -->判断该字符串是否包含“window”
$str.compareto("nicai") -->判断两字符串是否相同(相同返回0,不同返回-1)
$str.indexof("w") -->查出“w”字母的下标
$str.insert(3,"hahaha") -->在索引3之后插入字符串“hahaha”
$str.replace("c","d") -->将c替换成d
分类:
powershell
标签:
powershell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统