質問: ``` @echo off cd /d %~dp0 cd pause ``` このようなバッチファイルを作成し、このファイルを指すシンボリックリンクを別のフォルダに作成しました。 コマンドプロンプト上でシンボリックリンクを実行すると期待通りシンボリックリンクのあるディレクトリに移動してそのパスが表示されるのですが、Explorer上でダブルクリックして実行すると実ファイルのあるディレクトリに移動してしまいます。 2行目の`cd /d %~dp0`はバッチファイルのあるディレクトリに移動するために(ググッて)書いた物ですが、ファイルがシンボリックリンクの時はシンボリックリンクのあるディレクトリに移動してほしいです。 どうすればExplorerから実行した時もシンボリックリンクのあるディレクトリに移動してくれるでしょうか?
回答: explorerはsymbolic linkの実体を起動しているようです。 なのでバッチファイル内で解決する方法は無さそうです。 ``` [TOF c:\temp\original.cmd] echo off echo %CMDCMDLINE% pause [EOF] mklink c:\test\symlink.cmd c:\temp\original.cmd explorer c:\test\symlink.cmd C:\windows\system32\cmd.exe /c ""c:\temp\original.cmd" " 続行するには何かキーを押してください . . . ``` もう一段batchファイルをかますとかトリッキーな事をやると何とかなるかもしれませんが綺麗じゃないですねぇ