PowerShell 是一个可以操作对象的高级shell,是一个支持模块的shell。
如何编写模块?参考:http://www.jb51.net/article/56229.htm 基本上就是在模块目录下写一个包含有一些函数的文件,一个这种文件就是一个模块,然后配之以一个同名(不同扩展名)的manifest文件
两种注释方式:
段注释:
1 2 3 4 5 |
<# .... #> |
行注释:
1 |
#this is comment |
实例:
web请求:
方法1:http://blog.csdn.net/qq_34352010/article/details/53572234
方法2:
1 |
PS3> $(New-Object -TypeName System.Net.WebClient).downloadstring("https://baidu.com") |
文本处理:
http://www.pstips.net/processing-text-1.html
http://www.pstips.net/processing-text-2.html
http://www.pstips.net/processing-text-3.html
解析url:http://www.pstips.net/processing-text-4.html
获取所有的IPv4地址:
1 2 3 4 |
PS C:\Users\phpor> ipconfig |Select-String ipv4 |ForEach-Object {$a=$_ -split ":" ; if($a) {$b=$a[1] -split "\(" ;$b[0].trim()}} 172.16.161.13 10.0.2.15 192.168.56.1 |
获取ifconfig的ipv4地址:
1 |
ifconfig|Select-String -Pattern "\s*inet\s([0-9.]+)"|foreach {$_.Matches.Groups[1].Value} |
注意: 正则表达式的正确使用使得事情变得更加利索
PowerShell 显示气球提示框: http://www.pstips.net/powershell-displaying-balloon-tip.html
多个对象之间用逗号分隔:
1 2 3 |
PS C:\Users\phpor> "a", "b" a b |
单引号与双引号:
1 2 3 4 5 6 7 |
PS C:\Users\phpor> $word="World" PS C:\Users\phpor> "Hello, $word" Hello, World PS C:\Users\phpor> 'Hello, $word' Hello, $word |
单引号中的单引号,双引号中的双引号:
1 2 3 4 5 |
PS C:\Users\phpor> """a""" "a" PS C:\Users\phpor> '''a''' 'a' |
单引号中连续的两个单引号解释为1个单引号,双引号中连续的两个双引号解释为1个双引号
转移字符
一般都是用反斜线转义,但是powershell中使用反引号来转义,如:
1 2 3 4 5 |
PS C:\Users\phpor> "a`"b" a"b PS C:\Users\phpor> "a`nb" a b |
命令结果赋值给变量的写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
PS C:\Users\phpor> $a=$(get-date) PS C:\Users\phpor> $a 2017年2月18日 23:49:21 PS C:\Users\phpor> $a=get-date PS C:\Users\phpor> $a 2017年2月18日 23:49:32 PS C:\Users\phpor> |
使用 $( cmd ) 的写法更舒服一些,更加接近于bash的写法
ISE比命令行写起来会舒服一些,不但有提示,还方便查帮助
PowerShell是已模块的形式添加功能的
选中命令时,下面就会出现命令的参数信息,按住ctrl点击命令时,参数信息界面就会隐藏