有一个名为itunesForward.ps1
的PowerShell脚本可以让iTunes快进30秒:
$iTunes = New-Object -ComObject iTunes.Application
if ($iTunes.playerstate -eq 1)
{
$iTunes.PlayerPosition = $iTunes.PlayerPosition + 30
}
它是通过一个提示行命令执行的:
powershell.exe itunesForward.ps1
是否可以从命令行传递一个参数,并将其应用到脚本中,而不是硬编码的30秒值?
8条答案
按热度按时间ui7jx7zq1#
测试为工作:
叫它
多参数语法(注解是可选的,但允许):
advanced parameters的一些示例,例如 Mandatory:
默认值不适用于强制参数。对于布尔类型
[Parameter(Mandatory)]
的高级参数,可以省略=$true
。2w3kk1z52#
你也可以使用
$args
变量(类似于位置参数):那么它可以被称为:
vxf3dgd43#
从批处理文件(*.bat)或CMD调用脚本
PowerShell核心
PowerShell
PowerShell调用
PowerShell Core或Windows PowerShell
Script.ps1 -脚本编码
afdcj2ne4#
让PowerShell分析并决定数据类型。它在内部使用“Variant”。
而且一般来说它做得很好...
或者如果需要传递多个参数:
liwlm1x95#
ohtdti5x6#
在文件中使用以下代码创建PowerShell脚本。
这将创建一个带有路径参数的脚本。它将列出所提供路径中的所有符号链接以及符号链接的指定目标。
c3frrgcw7#
您也可以直接在PowerShell命令行中定义变量,然后执行脚本。变量也将在那里定义。这在我无法修改签名脚本的情况下帮助了我。
示例:
其中iTunesForward.ps1为
cygmwpex8#
在我的特定用例中,我想从忽略
params
的配置文件中访问参数,并简单地检查参数的存在性(本质上是一个开关)。我有一个运行ps1文件的批处理脚本,但有一个配置文件。
profile.ps1
在加载时输出文本。在一些脚本中,如果我不需要,我想禁用该文本的输出。为此,我创建了一些简单的开关,如下面的示例。这是一个非常基本的版本,但如果你愿意,你可以扩展它。使用'静音运行'模式的例子,然后...
在我的批处理脚本中:
PowerShell脚本(
profile.ps1
内部):默认情况下(如果您刚刚打开pwsh.exe),那么
$global:QuietProfile
值将为false,您将看到正常的输出。