別のショートカットへのショートカットを作成するには?


9

Windows XPは、別のショートカットへのショートカットを作成しようとすると、元のショートカットのターゲットを新しいショートカットに割り当てます。これは、ターゲットパスを手動で入力しても発生し、元のショートカットのコピーが残ります。これは私が望むものではありません。

.lnkファイルが別の.lnkファイルを直接指すようにするにはどうすればよいですか?この二重の間接参照の形式は、頻繁に移動するファイルへのショートカットを管理するのに非常に役立ちます。


Windows 7で動作します... XPでは同じではありませんか?
soandos

@soandos:ショートカットへのショートカットを作成する代わりに、ショートカットのコピーを作成します。
user541686

@soandosショートカットへのショートカットを作成すると、新しいショートカットは、ショートカットファイル自体のパスではなく、最初のショートカットのパスを参照します。これは、Windows XPおよび7のデフォルトの動作です
iglvzx

回答:


4

リンクにリンクすることの有用性を完全に理解しており、簡単な解決策も探しています。私が思いついた最善の方法は、shortcut.lnkファイルを指すハードリンクを使用することです。私はシンボリックリンクをテストしました(ジャンクションはフォルダーではなくファイルのため、テストされていませんでした)これらは機能しません(作成時に壊れたファイルであり、開くことができません)。

ハードリンクには、多くの長所と短所があります。主な欠点は、簡単にバックアップすることがほぼ不可能であることです(別のダイビングに、または同じドライブの別の場所にバックアップするには、サードパーティのソフトウェアまたはスクリプトが必要です)。主な利点は、元のファイルを変更すると自動的に更新されるため、1つのショートカットファイル(新しいパス/アイコン)を変更すると、関連するすべてのハードリンクも変更されます[ただし、ハードリンクの名前は一意であるため、ファイル名を変更してもハードリンク名を変更する、またはその逆]。ハードリンクの長所と短所の両方であるもう1つの機能は、ハードリンクのアイコン/パスを変更する(ハードリンクデータを変更する)と、オリジナルも変更されることです。これには「リンク自体の削除」は含まれません(リンクは他のファイルと同様に削除できます。元のファイル自体は削除しません)。これは、関連付けられているすべてのリンクの同期を維持するために有利ですが、ハードリンクが脆弱な場所に格納されていて、データが悪意を持って変更されている場合や、単一のリンクのデータを変更する際にユーザーエラーが発生した場合には不利です。この変更は、オリジナルを含むすべてのハードリンクパートナーに適用されます。率直に言って、「安定したソース参照」が必要な場合を除いて、この動作は一般的に役立ちます(一方向の変更)。この変更は、オリジナルを含むすべてのハードリンクパートナーに適用されます。率直に言って、「安定したソース参照」が必要な場合を除いて、この動作は一般的に役立ちます(一方向の変更)。この変更は、オリジナルを含むすべてのハードリンクパートナーに適用されます。率直に言って、「安定したソース参照」が必要な場合を除いて、この動作は一般的に役立ちます(一方向の変更)。

Windowsエクスプローラーでハードリンクを含む個々のハードリンクとフォルダーのコピーをテストしました。その結果、元のデータへの関連付けが解除されたショートカットが作成されました(関連付けられたハードリンクではなくなったため、元のリンクを変更しても変更されません)。この単純なコピーの欠如は非常に迷惑であり、それらを広範囲に使用することに消極的である主な理由ですが、特定の目的(少数の安定したディレクトリからデスクトップ/タスクバーへのリンクの同期など)しか持っていない場合/ startmenu)それらは依然として良い解決策である可能性があります(ただし、ディレクトリの構築を自動化するスクリプトを書かなければ、他のシステムに実際に移植することはできません)。ただし、移動せずに移動します(作成後は、ファイルシステムの任意の場所に移動できます。「コピー」することはできません)。

ハードリンクを作成するには、管理者特権のコマンドプロンプト(system32で開いた.cmd、または.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を提供するサードパーティソフトウェア)を介してのみ作成されていることを直接述べる必要があります。また、それらは「ミラーリングされたコピー」ではありません'元のオブジェクトの場合、元のオブジェクトのファイルサイズが表示される場合がありますが、それらは本質的にドライブで0バイトのスペースを使用します。それらは実際にはドライブのMFTに格納された参照です(これは、2つの異なるパーティション間で作成できない理由でもあります[これは、言及する価値のある別の機能ですが、ショートカットとジャンクションの巧妙な組み合わせで簡単に克服できます、シンボリックリンク、およびハードリンクが同時に使用されます])

率直に言って、これはまさにあなたが探しているものであり、非常に便利な機能だと思います。うまくスクリプトができれば、ハードリンクディレクトリを望みどおりに構築するプログラムを書くのは難しくありません(他のシステムでは「バックアップ」または「ポータビリティソリューション」として扱います)。また、サードパーティのソフトウェアを見つけて、これらすべてのタスクを容易にし、ハードリンクを操作することによる本質的な扱いやすさを克服することもできます。


それは完全にそのオプションでした。(Windows Server 2012でも引き続き機能します)。質問に正確に回答したので、回答済みとマークしてください。私は、ネットワークを介して共有され、15人のユーザーによって起動されたソフトウェアを「バージョン管理」するために使用します。新しいバージョンを入手したら、「最初の」リンクをその新しいリリースを指すように変更するだけで、hardLinkは変更を尊重します。ハードリンクは、ユーザーのデスクトップ(10〜15のユーザープロファイル)に存在する最後のリンクです。
Simon

Windows 10では機能しないか、ハードリンクとは何か理解できません。私は指示に正確に従い、「ハードリンクは...に対して作成されました」と表示しましたが、ハードリンクを右クリックして[プロパティ]を表示すると、他のリンクではなく、元のファイルを指しています。fcコマンドラインから実行した場合でも、「違いはありません」と表示されます
Andrew Steitz

2

最も簡単な回避策は、バッチファイルを使用することです。

Shortcut.lnkがにある場合、次の1行のコードでC:\Files\新しい.batファイルを作成すると、.lnkファイルが起動します。

"C:\Files\Shortcut.lnk"

ええ、私はすでにこれについて知っていましたが(これを検索すると、インターネット上の他の場所で言及されている「答え」です)、実際には質問には答えられません...
user541686

.lnkファイルへの「ショートカット」もファイルでなければならない理由はあり.lnkますか?これが重要な場合、またはその他の要件がある場合は、質問を編集してこれらの詳細を含めてください。そうすれば、より良い答えが得られます。:)
iglvzx

ええと、はい、それは私が質問で尋ねたものです... .batファイルが十分であれば、Microsoftは.lnkファイルを作成しなかったでしょう...
user541686

そしてFYI、振る舞いバッチファイルは何もあなたがそれらを右クリックし、ショートカットのような瞬間(あなたがしてもまたは一体、彼らも、ショートカットのようには見えません見て彼らに)。
user541686 2012年

OK。私は先に進み、この要件をより明確にするためにあなたの質問を編集しました。
iglvzx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.