📂WinMergeComparerApp
┣ 📂Modules
┃ ┗ 📂WinMergeHandler
┃ ┗ 📜WinMergeHandler.psm1 # WinMergeの呼び出しと設定管理を行うモジュール
┣ 📜App.ps1 # アプリケーションのメインスクリプト
┗ 📜App-ショートカット # App.ps1を起動するショートカットファイル
# WinMergeHandler.psm1
Function Compare-PathsUsingWinMerge {
<#
.SYNOPSIS
2つのパスをWinMergeで比較します。必要な設定をコマンドラインオプションとして適用します。
.PARAMETER Path1
比較する最初のパス。
.PARAMETER Path2
比較する2番目のパス。
.PARAMETER Options
WinMergeに渡す追加のコマンドラインオプション。
#>
param(
[string]$Path1,
[string]$Path2,
[string]$Options = "" # ここでデフォルトのオプションを設定できます
)
# WinMergeのパスを確認
$winMergePath = if(Test-Path "C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe") {
"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe"
} elseif(Test-Path "C:\\Program Files\\WinMerge\\WinMergeU.exe") {
"C:\\Program Files\\WinMerge\\WinMergeU.exe"
} else {
throw "WinMergeがインストールされていません。"
}
# WinMergeでの比較コマンドを実行。オプションを含める
$cmdArgs = $Path1, $Path2, $Options -join ' '
& $winMergePath $cmdArgs
}
# App.ps1
# モジュールの読み込み
Import-Module "$PSScriptRoot\\Modules\\WinMergeHandler\\WinMergeHandler.psm1"
# 主処理
Function Main {
# 比較するパス(例)
$Path1 = "C:\\Path\\To\\First\\FileOrDirectory"
$Path2 = "C:\\Path\\To\\Second\\FileOrDirectory"
# パスの存在確認
if(-not (Test-Path $Path1) -or -not (Test-Path $Path2)) {
Write-Host "指定されたパスの一部または全部が存在しません。"
return
}
# WinMergeでの比較処理。必要に応じてオプションを追加してください
$options = "/u /wl /wr" # 例: /u は自動終了、/wl と /wr は左右のファイルを読み取り専用で開く
Compare-PathsUsingWinMerge -Path1 $Path1 -Path2 $Path2 -Options $options
}
# スクリプトの実行
Main