作業場所:  
へのリンク
へのリンク

  




MKLINK コマンドを呼出して、リンクを作成する。 シンボリックリンクの作成には、管理者権限が必要。 ( 管理者に成れるなら、同じ所にある "リンク作成、管理者権限で.wsf" を、 Windows Based Script Host で開いて、昇格のダイアログに OK する。) リンク先を、相対パスで指定した場合、 シンボリックリンクでは、リンク先は、作成するリンクのある場所から、 その相対パスで指される。 他の種類のリンクでは、相対パスは、ここでの作業場所(CurrentDirectory)から 絶対パスに変換されてセットされる。 ハードリンクでは、 そのリンク先は、既に存在するファイルでないとならない。 ( シンボリックリンク、ジャンクションでは、リンク先が存在しなくても 作成は可能だが、リンクの使用時にエラーとなる。) また、リンク先は、同じドライブ(ボリューム)の中でなければならない。 ( リンクではなく同一物の別名。全ての別名が削除される迄、削除されない。) ハードリンクのリンクの名は、リンク先と同じ拡張子を付けないと、 それを開くアプリケーションが、別のものになってしまう。 ( シンボリックリンクでは、リンク名に拡張子は関係ない。) チェック cmd窓閉 に、 チェックあれば、コマンドの実行結果の出力を、こちらで受け取って、表示する。 チェックなければ、コマンドのウィンドウを閉じないで残す。 結果出力をこちらで受け取る場合、JIS にない文字は、? に文字化けするが、 リンク名やリンク先に、それらの文字を使っても問題ないようである。 結果表示が文字化けしても、リンクは正常に作られている。 この HTA への引数1つは、フォルダなら、作業場所(CurrentDirectory)の指定と取る。 "リンク作成、管理者権限で.wsf" も、(フォルダをドロップする等で) 引数1つあれば、 こちらへ中継するが、開くアプリケーションの選択ダイアログが出る時など、 その引数を渡してくれない場合があるようだ。 作業場所(CurrentDirectory)は、 例えば、作成するリンクの名がパスでなく名前のみなら、そこに、リンクが作られる、 というように、リンク名やリンク先が、相対パスの時、その解決に使われる。 但し既述したように、シンボリックリンクのリンク先は、相対パスで記述したままの、 リンクが作られるようである。 シンボリックリンク、ジャンクションでは、 リンク先が存在するか、ファイルか、フォルダかなど、こちらでは確認せず、 そのままコマンドへ渡す。( ハードリンクでは、実行前に確認する。) パスのディレクトリ区切りに、/ も使用可能。 シンボリックリンクのリンク先パスの区切りには、/ を使うと、リンク先へ アクセスできなくなるので、こちら側で、\ に変換するようにした。 他の場合、/ は多分、cmd で \ に変換されて問題ないと思われる。