初步使用
Powershell是微软开发的脚本语言,旨在管理操作系统,是对传统Windows命令行cmd的补充,当然,也兼容了cmd的大部分命令。在Windows中,直接在搜索栏中搜索PowerShell,即可打开此工具,在其交互界面中,盘符前面有一个PS标志,可以通传统的命令行cmd区分开来,为了行文简洁,后文将采用PS作为简称。
进入之后,按照编程界的老规矩,先来跟世界问个好
> echo "hello world"
hello world
此外,在PS中,用井号#进行注释,且其指令通常不区分大小写,相对来说更加灵活。
帮助系统
众所周知,cmd中提供了help命令,可以快捷地搜索各种指令的帮助信息,对于新手非常友好。PS也提供了帮助命令【Get-Help】,稍显繁琐,但在进一步了解PS之后,就能发现【Get-XXX】是PS中常见的指令命名风格,对于没有任何命令行操作经验的人来说,反而更加符合自然语言的直觉。
比如,我想获取以rmdir这个命令的用法,示例如下
> get-help rmdir
名称
Remove-Item
语法
Remove-Item [-Path] <string[]> [<CommonParameters>]
# ...
如果想获取所有结尾是dir的指令,可依照下面
> Get-Help *dir
Name Category Module Synopsis
---- -------- ------ --------
rmdir Alias Remove-Item
chdir Alias Set-Location
dir Alias Get-ChildItem
mkdir Function
目前,PS并不内置所有帮助信息,通过【Update-Help】,可以下载更多的帮助信息。因为内容很多,所以这个过程比较耗时,界面会一直停留在下面的样子,但更新模块的内容会不断发生变化。
运行脚本
除了可以作为一种交互式命令行工具,PS也是一门编程语言,其默认后缀是ps1,注意最后一个字符是阿拉伯数字1。
但是,想在PS中运行脚本,还需要设置其执行策略,通过【Get-ExecutionPolicy】命令,可以获取当前的执行策略,如果返回值是【Restricted】,就说明无法运行脚本。为此,可输入下面的指令,使之变成【RemoteSigned】模式,从而支持运行脚本。
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
下面新建一个脚本文件,内容如下,用于打印九九乘法表。
#test.ps1
foreach($n in 1..9){
$(foreach($m in 1..$n){
"$m`x$n=$($n*$m)".Padright(8)
}) -join $null
}
运行结果为
> .\test.ps1
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81