ConEmu で gvim を起動するとタスクでは機能するのに、コマンドラインからは機能しないのはなぜですか?

ConEmu で gvim を起動するとタスクでは機能するのに、コマンドラインからは機能しないのはなぜですか?

ConEmuにこれを入力すると:

gvim --windowid %ConEmuBackHWND% -new_console:sH

しばらくすると、次のような空白の分割が表示されます。

GUI application (PID=384) was attached to ConEmu:
\Path\To\gvim.exe

何が問題なのかを調べようとしながら、次のコマンド内容で「Gvim」タスクを作成しました。

gvim --windowid %ConEmuBackHWND% -new_console:sH

(上記のコマンド ラインで入力したコマンドと同じ)
「新しいコンソールの作成」ダイアログからタスクを開始すると、すべてが正常に動作し、右側に gvim 子ウィンドウが表示されます。

「新しいコンソールの作成」ダイアログからコマンドはどのように実行されますか? また、上記のコマンドを使用してコンソールから直接 gvim スプリットを生成するにはどうすればよいですか?

答え1

ProcessExplorerは環境変数などの問題を検出するのに非常に役立つツールです...変数の拡張が原因で問題が発生していると思います。以下を試してください。

gvim --windowid !ConEmuBackHWND! -new_console:sH

パーセント記号を付けてコマンドを実行すると、CLIは変数を置き換えます。前にConEmuはコマンドを取得します。つまり、新しい分割でgvimを実行しようとしましたが、HWNDを次のように伝えました。古いスプリット

感嘆符を使用すると、変数は展開されず、ConEmu はコマンドをそのまま取得し、!ConEmuBackHWND!split が作成されて新しい変数が初期化された後、適切なタイミングで ConEmu 自身によって展開されます。

関連情報