变量
赋值
$var = value
使用
$var
-PhysicalDisks $PhysicalDisk
管道
Powershell的管道是强管道,传递的是对象(Object),使用“|”作为标识
例
将Get-Disk命令返回的对象传递给命令Where-Object,再将返回的对象传递给New-Partition命令,最后将返回的对象传递给Format-Volume命令。实现了将Nunber为13的磁盘建立一个新的40T的新分区,然后快速格式化为ReFS分区格式,命名卷标为Media,并分配分区号。
Get-Disk |Where-Object {$_.Number -eq 13}|New-Partition -AssignDriveLetter -Size 40TB | Format-Volume -FileSystem REFS -NewFileSystemLabel Media -Confirm:$false
命令行传参
在运行Powershell脚本时,可以从命令行传递参数到脚本中。
通过param()
接收参数。
格式
param[type]$var1,[type]$var2
从命令行传入两个参数,一个是var1,一个是var2。
例
param([string]$font,[string]$lang = 'en',[string]$src = '.\source',[string]$dst = '.\result',[switch]$help = $false,[int]$processing = 1)
这个脚本需要传入6个参数,其中$font必传,否则会报错,因为它没有默认值。其他参数由于有默认值,所以不传参时会使用默认值。
其中$font、$lang、$src、$dst是字符串类型,$help是开关类型,$processing是整型类型。
调用脚本
.\example.ps1 -font 'font.ttf' -lang 'en' -src '.\src -dst '.\dst -processing 4'
这个命令调用了example.ps1脚本,传入了$font = 'font.ttf'
、$lang = 'en'
、$src = '.\src'
、$dst = '.\dst'
、$processing = 4
这5个参数。
关于开关变量
由于刚才的脚本定义开关变量$help = $false
,所以这个变量如果不在命令行里传入,默认为不启动。如果要将变量的值修改为$true,则直接传入-help
即可。例如这样.\example.ps1 -help -font font.ttf
发表回复