专栏首页HACKWAYPowershell语法入门

Powershell语法入门

这里是一些简单的基础,罗列一些简单的语法,如果你有一些编程语言的基础一眼就能明白,通过这些大概了解powershell的入门使用语法

认识PowerShell

$psversiontable查看版本

PowerShell强大之处

  1. 快捷方便
  2. 面向对象
  3. 支持兼容.net vbs等
  4. 可拓展性

PowerShell快捷键

alt+f7 清除命令的历史纪录
esc 清空当前命令行

PowerShell执行外部命令

&"notepad"

PowerShell命令集

动名词来命名命令

  • cmd 命令在powershell中可以直接使用

get-command # 获取所有命令列表

  • 帮助命令走天下

get-help

PowerShell别名使用

get-alias -name ls # 查询ls的原始命令

PowerShell自定义别名

set-alias -name pad -value notepad # 设置临时别名,将notepad赋给pad别名 del alias:pad # 删除别名 export-alias 1.psl # 导出别名 import-alias -force 1.psl # 强制导入别名

PowerShell变量基础

  • 等于号赋值

$name="xx"

  • 特殊变量名称用花括号包围

${"asdsad asdsd" var ()}

PowerShell变量操作

  • 支持多变量赋值
name,

name2=1,2

  • 查看正在使用的变量

Get-Variable num* # 查找num特定变量值

  • 确定变量是否存在

test-path variable:num1 # 返回的是布尔值

  • 删除变量名

Remove-Variable num1

PowerShell自动化变量

常用的变量

  • $pid
  • $home

PowerShell环境变量

ls env: # 查看当前环境变量

$env:os # 输出某个键的值

$env:0s="Linux" # 临时赋值变量

  • 设置永久环境变量(.net方式)

[environment]::setenvironmentvariable("PATH","D:","User")

PowerShell脚本执行策略

get-executionpolicy # 查看当前运行策略

策略分类
> get-help set-executionpolicy

语法
    Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | U
    ndefined} [[-Scope] {Process | CurrentUser | LocalMachine | UserPolicy | MachinePolicy}] [-Confirm] [-Force] [-What
    If] [<CommonParameters>]

set-executionpolicy RemoteSigned # 设置可以运行的策略

PowerShell与其他脚本程序的互相调用

  1. powershell直接可以执行bat、vbs、psl文件
  2. bat调用powershell 需要使用 powershell &"文件路径"

PowerShell条件操作符

  • -eq #等于
  • -lt #小于
  • -gt #大于
  • -contains #不包含

1,3,5 -contains 3

  • -notcontains
  • -not
  • -and
  • -or
  • -ne #不等于

1,3,5 -ne 3

PowerShell条件判断【if语句】

if(

num -gt 100){"1"} elseif(

num -eq 100){"0"} else {"-1"}

PowerShell条件判断【switch语句】

$number = 49
switch($number)
{
    {$_ -le 50} {"此数值小于50"}
    {$_ -eq 50} {"此数值等于50"}
    {$_ -gt 50} {"此数值大于50"}
}
\\ $_代表变量

PowerShell循环结构【foreach语句】

$arr = 1,2,3,4,5 或者 $arr=1..10
foreach ($n in $arr)
{
    if($n -gt 5)
        {
            $n
        }
}

PowerShell循环结构【while语句】

$num = 15
while($num -gt 15)
{
    $num
    $num=$num-1
}
  • dowhile 至少运行一次
do
{
    $num
    $num=$num-1
}
while($num -gt 15)

break和continue关键字使用

break跳出

$num=1
while($num -lt 6)
{
    if($num -gt 4)
    {
        break
    }
    else
    {
        $num
        $num++
    }
}

continue跳过

$num=1
while($num -lt 6)
{
    if($num -gt 4)
    {
        break
    }
    else
    {
        $num
        $num++
    }
}

PowerShell循环结构【for语句】

$sum=0
for($i=1;$i -;e 100;$i++)
{
    $sum=$sum+$i
}
$sum
\\ 计算前100个数字的和

PowerShell循环结构【switch循环】

$num=1..10
swith($num)
{
    {($_ % 2) -eq 0} {"$_ 是偶数"}
    {($_ % 2) -ne 0} {"$_ 是奇数"}
}

PowerShell数组的创建

$arr = ipconfig
$arr
$arr -is [array]
\\ 判断是否是数组

arr=ipconfig #cmd命令也可以执行 arr=@() #创建空数组 $arr=1..10,"string",(get-date)#创建混合数组

PowerShell访问数组

$arr[0..2]

PowerShell自定义函数及调用

function myping($url)
{
    ping $url
}
myping www.baidu.com

PowerShell函数返回值

return

PowerShell定义文本

`转义

PowerShell实现用户交互

$input=read-host "请输入具体的路径"
"您当前的路径是:$input"

PowerShell格式化字符串

"my name is {0} ,iam {1} years old" -f $name,$age

为你铺好的HACKWAY

长按扫码上车

你点的每个在看,我都认真当成了喜欢

本文分享自微信公众号 - HACKWAY(gh_7a5a315cde00),作者:HACKWAY

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 黑板客爬虫闯关游戏

    成功后可以获取下一关的地址链接哦!试试吧,如果你也对python爬虫有兴趣,欢迎交流指正哦!继续第二关的爬虫闯关游戏下一关地址

    轩辕小子
  • 网络安全实验室平台(脚本关)

    看到了一个好玩的平台————网络安全实验室,看起来对新手还是有帮助的,如果你有编程基础也可以看看脚本关哦!

    轩辕小子
  • SQL注入靶场之SQLiLabs搭建指南

    据统计,互联网上SQL注入漏洞占整体的百分之六十左右,所以学好SQL注入的漏洞挖掘将十分重要。

    轩辕小子
  • 1024. 科学计数法 (20)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即数字的整数部分只有1位...

    AI那点小事
  • c++那些事儿5.0 模板

    模板 是泛型编程的重点,在后面的STL中,模板的功能得到广泛运用。 在java中泛型,集合都有模板的身影,弄清模板可以让我们更加深入学习。 ---- 可讲的...

    东风冷雪
  • 第23天:js-数据类型转换

    一、padding 1、内边距会影响盒子大小 2、行内元素,尽量不用上下的padding和margin 3、块元素嵌套块元素。子级会继承父级的宽度,高度由内容决...

    半指温柔乐
  • 【字节跳动面试题】C++指针作为参数传递

    调用函数verifyPointerArgumentOfFunction时,num将其数组首元素的地址传入,赋值给p,调用了p的拷贝构造函数,因此p的值和num其...

    用户7257200
  • VulnHub靶机渗透之Matrix:v3

    这一次的靶机难度为中等难度,有所提升,以黑客帝国电影为背景,有点中二,感兴趣可以自行下载研究,下载连接如下:https://download.vulnhub.c...

    光明SAMA
  • 通俗易懂!白话朴素贝叶斯

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    红色石头
  • 赋值运算符重载

    当加入了左移重载函数后,在输出cout<<时就已经调用了w的析构函数释放了内存,所以在cout<<w<<endl;会发生错误

    大忽悠爱学习

扫码关注云+社区

领取腾讯云代金券