動画編集にはWondershare社のFilmoraを使用しており、概ね満足しています。複数のコンピューターにインストールしていますが、インストール場所が異なることや、Filmoraが頻繁にバージョンアップされ、その度にインストールフォルダ名にバージョン番号(例:14.4.3.11809)が含まれるため、コマンドラインからバッチファイルで起動する習慣のある私にとっては、バッチファイル内のバージョン番号を頻繁に修正する必要があり、非常に煩わしく感じていました。本日、ついに起動用の実行ファイルを修正し、今後は修正が不要になることを期待しています。
当初は、fm14.bat バッチファイル内だけでパスの判定と実行を完結させようと考えましたが、少し試したところ、あまりにも面倒であることがわかりました。最終的に、より簡単なVBScriptを使って解決することにしました。
1. fm14.bat
- Everything search engineのコマンドラインツール es.exe を使用して、ハードディスク内の filmora.exe を検索します。
- 検索で見つかった
es.exeの出力をfilmora-exec.vbsに渡します。
▼ fm14.bat
@echo off
for /f "tokens=*" %%i in ('es -w -r "^filmora.exe$"') do set FILMORA=%%i
cscript.exe c:\util\filmora-exec.vbs "%FILMORA%"
2. filmora-exec.vbs
- 渡された
es.exeの出力を解析し、C:またはD:ドライブで始まる実行パスを見つけてfilename変数に格納し、最後にそのfilenameを実行します。
Dim source, substr, pos, filename
' 引数1の例: 2025/03/12 10:11 38,008 C:\Users\ユーザー名\AppData\Local\Wondershare\Wondershare Filmora\14.4.5.11834\Filmora.exe
source = WScript.Arguments(0)
WScript.Echo source
substr = "C:"
pos = InStr(source, substr)
if pos <= 0 Then
substr = "D:"
pos = InStr(source, substr)
End if
If pos > 0 Then
'WScript.Echo "部分文字列 [" & substr & "] の位置:" & pos
filename = """" & Mid(source, pos, 128) & """"
WScript.Echo "実行: " & filename
Set objShell = CreateObject("WScript.Shell")
objShell.Run filename, 0, True
Else
WScript.Echo "部分文字列 '" & substr & "' が見つかりません"
End If