PowerShell

说明

bat脚本的升级,比bat好用很多
cmd中键入powershell即可进入
bat脚本规则
微软官方教程

PowerShell脚本怎么运行

1.修改脚本执行权限

以管理员权限打开PowerShell
set-ExecutionPolicy Unrestricted
get-ExecutionPolicy 可以查看目前的权限等级
否则无法双击运行.ps1文件
Unrestricted、RemoteSigned、Allsigned、Restricted、Default、Bypass、Undefined

2.修改注册表

HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell
如果是Edit,那就是使用powershell_ise.exe打开。
如果是Open,那就是使用记事本打开。

学习命令

命令不区分大小写
1..10 | foreach-object {\(_ * 5} \)_代表当前对象
get-alias 获取某个命令的别名
Get-Verb. 运行此命令时,将返回大多数命令遵循的谓词的列表。 此外,响应还会说明这些谓词执行哪些操作。 由于大多数命令都遵循这种命名方式,因此,它设置了命令的预期操作,这样有助于你选择适当的命令,也可帮助你在创建命令时为其命名。
Get-Command. 此命令会检索计算机上安装的所有命令的列表。
Get-Member. 它在基于对象的输出上运行,并且能够发现可用于命令的对象、属性和方法。
Get-Help. 以命令名称为参数调用此命令,将显示一个帮助页面,其中说明了命令的各个部分。

变量

read-host 用户读入
# 我是注释
$arr = 1,2,3,4,5,6
$arr[0] = 10
$arr = '10',123
echo $arr
$stu = @{age = 21;name = "mzb";}  字典
$arr = (1,2,3,4,5)
$arr = (1..20)  递增序列
$arr -is "array"

比较运算符

-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含

循环、分支

支持while,do-while,for语法同c++,支持break,continue
还支持switch、do-until、foreach($i in $arr)

for ($i = 0;$i -lt 3;$i++)
  {
    write-host "`$i=$i"
}

if和c++差不多

函数

参数可以带多个类型,和默认值

function add([ref][int]$a,$b = 100)
  {
    return $a.value + $b
}

类型设置引用即可,注意引用参数只能first.Value这样调用
然后传入参数的时候需要改变参数类型为引用

function set-value([ref]$first)
  {
   $first.Value = $first.Value + 1
   echo value = $first.Value
}
$a = 0
set-value ([ref]$a)

类体系

powershell中都是对象,还有和c++类似的异常
主要有.NET Framework和COM接口
一个非常强的功能是自定义.net类库,编译成dll,可以导入到powershell

模拟键盘

$wshell = new-object -comobject wscript.shell
$wshell.sendkeys("abs{CapsLock}132")   
$wshell.sendkeys("{{}") #特殊符号用{}括起来就行了
posted @ 2021-10-25 12:14  XDU18清欢  阅读(144)  评论(0)    收藏  举报