使用PowerShell有条件地发送密钥

时间:2018-09-25 20:20:08

标签: powershell powershell-v3.0

在将Ctrl-4发送到窗口的同时,我使用以下脚本使用Media Player Classic播放播放列表。

mpc-hc.exe playlist.m3u /play
[void][System.reflection.assembly]::loadwithpartialname('system.Windows.forms')
Foreach ($line in get-content 
playlist.m3u) {
If ($line.substring($line.length-5,1) -match 2) {
 [System.Windows.forms.Sendkeys]::sendwait("^4")
  }
}

快捷键Ctrl-4显示有关播放文件的信息,但是我只希望第二个文件显示此信息,此脚本对所有播放的文件都有用吗?

1 个答案:

答案 0 :(得分:0)

重构代码,以便可以在ISE或VSCode中进行调试。 喜欢:

$files = Get-Content playlist.m3u

$file = $files[1] # the 2nd one

然后,也许您不需要foreach。没有更多背景信息,很难提供完整的解决方案,也许以上内容足以阻止您。

编辑每个注释以更改需求...

将您的代码修改为类似以下内容:

$files = @(
'one'
'two'
'three'
'four'
'five'
)

$isEvenIndex = $false
foreach ($file in $files)
{
    if ($isEvenIndex) 
    { 
        # do your stuff
        Write-Output "$file"
    }

    $isEvenIndex = !$isEvenIndex
}