別のショートカットへのショートカットを作成しようとすると、Windows XPは元のショートカットのtargetを新しいショートカットに割り当てます。これは、ターゲットパスを手動で入力した場合でも発生し、元のショートカットのコピーが残ります。これは私が望むものではありません。
.lnk
ファイルが別の.lnk
ファイルを直接指すようにするにはどうすればよいですか?この形式のdouble indirection は、頻繁に移動するファイルへのショートカットを管理するのに非常に役立ちます。
リンクへのリンクの有用性を完全に理解しており、簡単な解決策も探しています。私が思いついた最良の方法は、shortcut.lnkファイルを指すハードリンクを使用することです。シンボリックリンクをテストしました(ジャンクションはファイルではなくフォルダー専用であるため、テストされていません)。これらは機能しません(基本的に、作成時に壊れたファイルであり、開くことができません)。
ハードリンクには多くの長所と短所があります。主な欠点は、簡単にバックアップすることがほとんど不可能なことです(別のダイビングや同じドライブ上の別の場所にバックアップするには、サードパーティのソフトウェアまたはスクリプトが必要です)。主な利点は、元のファイルを変更すると自動的に更新されるため、1つのショートカットファイル(新しいパス/アイコン)を変更すると、関連するすべてのハードリンクも変更されることです[ただし、ハードリンクの名前は一意であるため、ファイル名を変更しても変更されませんハードリンク名を変更し、その逆も同様です]。ハードリンクの長所と短所の両方である別の機能は、ハードリンクのアイコン/パスを変更する(ハードリンクデータを変更する)ことで、オリジナルも変更されることです。これには、「リンク自体の削除」は含まれません(リンクは、元のファイル自体を削除せずに、他のファイルと同じように削除できます)。これは、関連するすべてのリンクの同期を維持するため有利ですが、ハードリンクが脆弱な場所に保存されていて、データが悪意を持って変更されたり、単一のリンクのデータを変更する際にユーザーエラーが発生したりする場合には不利です。この変更は、元のパートナーを含むすべてのハードリンクされたパートナーに引き継がれます。率直に言って、この動作は、「安定したソース参照」(一方向の変更)が必要な場合を除いて、一般的に役立ちます。
個々のハードリンクとハードリンクを含むフォルダーをWindowsエクスプローラーでコピーすることをテストしましたが、その結果、元のデータへの分離されたショートカットが作成されます(ハードリンクが関連付けられなくなったため、元のリンクを変更しても変更されません)。この単純なコピーの欠如は非常に厄介であり、それらを広範囲に使用することを躊躇する主な理由ですが、特定の目的(安定したディレクトリからデスクトップ/タスクバーへのリンクの同期など)のために少数しかない場合/ startmenu)それらはまだ良い解決策かもしれません(ただし、ディレクトリ構築を自動化するスクリプトを書かない限り、他のシステムに実際に移植することはできません)。ただし、それらは壊れることなく移動します(作成されたら、ファイルシステム内の任意の場所に移動できます。「コピー」することはできません)。単一のソースに必要な数のハードリンクを作成することもできますが、繰り返しになりますが、必要な「コピー」ごとに新しいハードリンクを最初から作成する必要がある「コピーアンドペースト」は簡単ではありません。
ハードリンクを作成するには、管理者特権でコマンドプロンプトを開き(.cmdをsystem32に開くか、管理者として.cmdを実行します)、次のように入力します。
mklink /H [path and name of Hardlink] [location of original file]
例:
mklink /H C:\users\you\desktop\hardlink.lnk C:\users\you\location\shortcut.lnk
リンク先のファイルタイプ(ここでは.lnkですが、メモ帳ドキュメントの場合はhardlink.txtなど)でハードリンクを指定することをお勧めします。これは基本的に元のファイルのミラーリングであり、Windowsエクスプローラーはそれをあたかもそれとして扱うためです。オリジナルでした(ここでも、便利な動作です)。また、コマンドプロンプト(またはコマンドにshellExtensionまたはGUIを提供するサードパーティソフトウェア)を介してのみ作成されることを直接述べる必要があります。また、それらは元の 'ミラーリングされたcopy'ではなく、元のオブジェクトのファイルサイズを表示する場合がありますが、本質的にドライブ上で0バイトのスペースを占有します。それらは実際にはドライブのMFTに保存された参照です(これは2つの異なるパーティション間で作成できない理由でもあります[これは言及する価値のあるもう1つの機能ですが、ショートカットとジャンクションの巧妙な組み合わせで簡単に克服できます、シンボリックリンク、およびハードリンクを同時に使用])
率直に言って、これはまさにあなたが探しているものであり、非常に便利な機能だと思います。うまくスクリプトを作成できれば、ハードリンクディレクトリを必要に応じて構築するだけのプログラムを作成することは難しくないと思います(そして、それを他のシステムの「バックアップ」または「移植性ソリューション」として扱います)。また、これらすべてのタスクを簡単にし、ハードリンクを操作する際の本質的な扱いにくさを克服するためのサードパーティソフトウェアを見つけることができる場合もあります。
最も簡単な回避策は、 バッチ ファイルを使用することです。
Shortcut.lnk
がC:\Files\
にある場合、次の1行のコードで新しい.bat
ファイルを作成すると、.lnk
ファイルが起動します。
"C:\Files\Shortcut.lnk"