Windows11のエクスプローラーで右クリックメニューからPowerShellスクリプトを実行する方法

コンピュータ
「Custom Context Menu」というアプリケーションを使うとWindows11のエクスプローラーの右クリックメニューに任意のアプリケーションを登録することが出来ます。
GitHub - ikas-mc/ContextMenuForWindows11: Add Custom Context Menu For Windows11
Add Custom Context Menu For Windows11. Contribute to ikas-mc/ContextMenuForWindows11 development by creating an account ...

Error

アプリケーションが登録出来るということは、「pwsd.exe」を登録するとPowerShellスクリプトも登録することが出来るということになります。

以下は登録したサンプルになります。

<#
.SYNOPSIS
MP4ファイルへメタデータをインポート

.DESCRIPTION
MP4ファイルへメタデータをインポート

.EXAMPLE
使い方

.PARAMETER FileName
引数にういて

.LINK
#>

param(
    [string[]]
    $arg_files
)

$ErrorActionPreference = "STOP"

function Export-MetaDataFromMP4
{
    param(
        [Parameter(ValueFromPipeline=$true,Mandatory=$true)]
        [string[]]
        $files
    )
    begin {}

    process {
        foreach ($file in $files) {
            $ini = $file + ".ini"
            if (Test-Path $ini)
            {
                $bak = $file + ".mp4"
                Move-Item -LiteralPath $file -Destination $bak
                Start-Process -FilePath "ffmpeg.exe" -ArgumentList "-i",$bak,"-i",$ini,"-map_metadata","1","-map_chapters","1","-c","copy",$file -NoNewWindow -Wait
                Remove-Item $bak
            }
        }
    }
    end {}
}
$arg_files | Export-MetaDataFromMP4

<#
.SYNOPSIS
MP4ファイルからメタデータをエクスポート

.DESCRIPTION
MP4ファイルからメタデータをエクスポート

.EXAMPLE
使い方

.PARAMETER FileName
引数にういて

.LINK
#>

param(
    [string[]]
    $arg_files
)

$ErrorActionPreference = "STOP"

function Export-MetaDataFromMP4
{
    param(
        [Parameter(ValueFromPipeline=$true,Mandatory=$true)]
        [string[]]
        $files
    )
    begin {}

    process {
        foreach ($file in $files) {
            $ini = $file + ".ini"
            Start-Process -FilePath "ffmpeg.exe" -ArgumentList "-i",$file,"-f","ffmetadata",$ini -NoNewWindow
        }
    }
    end {}
}
$arg_files | Export-MetaDataFromMP4

内容はffmepgでメタデータ(チャプター)をエクスポートとインポートするスクリプトです。

動画作成ソフトで何度も同じ動画ファイルを作成するのですが、その都度動画ファイルにチャプターを追加しています。
対象となる動画ファイル名が異なるだけで同じ作業手順になりますのでスクリプトによるバッチ処理が可能です。
スクリプトは基本的にコマンドラインから実行するものですが、上記のメニューに登録するとエクスプローラーから実行出来て便利だと思います。

コメント