How to pass an argument to a PowerShell script?
有一个名为
1 2 3 4 5 6 | $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + 30 } |
使用提示行命令执行:
1 | powershell.exe itunesForward.ps1 |
是否可以从命令行传递参数,并将其应用于脚本而不是硬编码的30秒值?
作为测试的工作:
1 2 3 4 5 6 7 8 | param([Int32]$step=30) #Must be the first statement in your script $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step } |
它用电话
1 | powershell.exe -file itunesForward.ps1 -step 15 |
你可以使用变量,也
1 2 3 4 5 6 7 8 | $step=$args[0] $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $step } |
然后,它可以调用类:
1 | powershell.exe -file itunersforward.ps1 15 |
PowerShell易于分析和决定的数据类型 internally辨别"变异"这… 和普遍的。一个好的工作。
1 2 3 4 | param( $x ) $iTunes = New-Object -ComObject iTunes.Application if ( $iTunes.playerstate -eq 1 ) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x } |
如果你需要两个或多个参数的通
1 2 3 4 5 6 7 | param( $x1, $x2 ) $iTunes = New-Object -ComObject iTunes.Application if ( $iTunes.playerstate -eq 1 ) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + $x1 $iTunes.<AnyProperty> = $x2 } |
PowerShell脚本create a与下面的代码的文件。
1 2 | param([string]$path) Get-ChildItem $path | Where-Object {$_.LinkType -eq 'SymbolicLink'} | select name, target |
这个脚本创建一个参数和一个路径。它将覆盖全symboliclinks在AS路径提供抵抗的specified目标的符号链接。