Условно отправлять ключи с помощью PowerShell - PullRequest
0 голосов
/ 25 сентября 2018

Я использую следующий сценарий для воспроизведения списка воспроизведения с помощью медиаплеера classic при отправке в окно Ctrl-4.

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 голосов
/ 25 сентября 2018

Рефакторинг вашего кода, чтобы вы могли отлаживать в 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
}
...