質問: cmd.exeへのショートカットを作成して起動したときに現在のディレクトリより下にあるabcディレクトリに移動したいとします。 このとき[cmd.exeへのショートカットのプロパティ]→[ショートカットタブ]→[作業フォルダー]に相対パスを指定したのですがいろいろ試してみてもディレクトリ移動してくれません。 絶対パスで指定した場合は問題なくディレクトリ移動します。 相対パス指定はどのようにすれば良いでしょうか。 (.batを使えば解決するのですが、ショートカットだけでのやり方があるのか知りたいです) windows8.1です。
回答: 質問からは、以下2点をどのように考えているか? が明確では無いですね。 * **現在のディレクトリ** とは何を指すのか? それはどうやって決まるのか? * 作成した **cmd.exeへのショートカットを起動する** という方法や手順は何か? そこで上記2点を以下のように仮定してみました。 * **現在のディレクトリ** とは **cmd.exeへのショートカットが存在するディレクトリ** のこと * **cmd.exeへのショートカットを起動する** とは **そのショートカットをダブルクリックする** または **そのショートカットを選択してからEnterキーを押下する** こと その上で、ショートカットのプロパティを以下のように設定すれば、コマンドプロンプトを起動したときに(少なくともWindows10ならば)目的のフォルダに移動できます。 * 「作業フォルダー(S):」の欄は空欄とするか、ショートカットが存在しているディレクトリに合わせる * 「リンク先(T):」の内容を以下に設定する ``` C:\Windows\System32\cmd.exe /K CD 移動先指定(相対パスが指定可能) ``` * 「詳細設定(D)...」の「管理者として実行(R)」はチェックしない これは、CMD.EXEのHELPで出てくる以下のオプションを適用したものです。 > > /K "文字列" に指定されたコマンドを実行しますが、終了しません。 > > > ショートカットのあるディレクトリの下の **abc** ディレクトリに移動したいならば「リンク先(T):」の欄を以下のように設定します。 ``` C:\Windows\System32\cmd.exe /K CD abc ``` 移動した先で更に何かを行いたい場合は、その後ろに`&`で接続してコマンドを続けます。バッチファイルを指定することも出来ます。 ``` C:\Windows\System32\cmd.exe /K CD abc & ECHO ディレクトリ移動テスト ``` とか、 ``` C:\Windows\System32\cmd.exe /K CD abc & SAMPLE.BAT ``` といったやり方です。 ちなみに **「作業フォルダー(S):」の欄が空欄** の時に **cmd.exeへのショートカットを起動する** 方法が、**ショートカットがカレントディレクトリに無い場合にコマンドプロンプトからショートカットのフルパス(Xxxx.lnk)を指定して実行する** だと出来ませんでした。 **ショートカットがカレントディレクトリに有る場合ならばコマンドプロンプトからショートカットのフルパスでもファイル名だけでも指定して実行する** だと「作業フォルダー(S):」の欄が空欄でも出来ました。