インストールしたプログラムをWindowsの別の場所に移動できますか?


27

推奨される重複に関する注意:インストール場所のグローバルな変更を探していません。プログラムごとにプログラムを別の場所に移動したい。


一部のソフトウェアインストーラーでは、プログラムのインストール先を選択できませんが、これは非常に面倒です。

すでにインストールされているプログラムを別の場所に移動し、できればレジストリで必要な変更を自動的に行う方法はありますか?

これまでの回答に従って更新
私は別の場所からプログラムにアクセスしたくない、私はそれが物理的にそこにありたい。したがって、あなたの提案に感謝しますが、リンクはしません。


1
SWがインストール場所を選択できないほど迷惑なほど悪い場合、「C:\」パスをどこかにハードコーディングするのも迷惑なほど悪いかもしれません。そのようなSWをだます唯一の安全な方法は、Jonnoの答えのようなもので、デフォルトの場所にインストールされているとまだ「考えている」というものです。ただし、「その」ドライブの使用可能なスペースなど、「多すぎる」にだまされていることがあります。
ハーゲンフォンアイゼン


@Downvoterなぜダウン投票なのですか?重複しているからですか?そうでない理由を説明しました。
ジョリスグロースマン

@JorisGroosman 同じドライブでシンボリックリンク使用できます。ファイルの場所は関係ありません。プログラムごとに行うこともできます。プログラムフォルダをドライブ上の別の場所(または別のドライブ全体)に移動し、シンボリックリンクして、元の場所が新しい場所を指すようにすることができます。これは、あなたの質問が重複していることを意味します。
AStopher

3
完全に複製ではありません。そして理論的には、組み込みの方法があるかもしれません。Closevotesは私に偽を感じる。
ジャーニーマンオタク

回答:


44

既存の実際のフォルダー構造についてあまり心配していない場合は、フォルダーを好きな場所に移動し、ディレクトリシンボリックリンクを使用して新しい場所を指すことができます(たとえば、システムドライブのスペースが限られている場合)。これの典型的なコマンドラインは次のようになります

mklink /d C:\Path\Of\Original\Folder D:\Path\Of\New\Folder

常にバージョンを更新するプログラムは非常に多く、メンテナンスが非常に難しいため、フォルダを実際に移動し、再ルーティングおよびリンクとレジストリキーを移動するツールは知りません。

編集:ディレクトリシンボリックリンクを正しく削除する方法を追加する要求が行われました。間違ったコマンドを使用すると、リンクしたフォルダーが消去される可能性があるため、この点に注意する必要があります。

最適な方法は次のいずれかです。

  • Windowsエクスプローラーからディレクトリのシンボリックリンクを削除します。これにより、ターゲットフォルダがそのまま保持され、シンボリックリンクのみが削除されます。

または

  • コマンドを使用する rmdir C:\Path\To\Symbolic\Link

コマンドはファイルを削除するために使用されるため、ディレクトリシンボリックリンクの場所でコマンドを使用しないdelでくださいdel。これを行うと、宛先ディレクトリへのパスをたどり、条件に一致するファイルをすべて消去します!


5
これには、パーティションがNTFSであることが必要です(おそらくNTFS)。FAT32はシンボリックリンクをサポートしていません。
シディウス

10

Jonnoの答えに基づいて、スペースが心配な場合は、シンボリックリンクがあなたの友達になります。Steamがsymmlinkと呼ばれるSteamインストールフォルダーの外にゲームをインストールできなかった当時のソフトウェアがあります。これは、シンボリックリンクの作成を自動化し、移動するプログラムを含むフォルダー(C:/ Programなど)ファイル)および宛先(例:D:/ programs)および特定のファイルを移動できます。


7

これらのアプリケーションを別の場所に移動/インストールすると、意図しない結果が生じる可能性があります。

プログラムを移動する場合、開発者が使用する前提条件の完全なセットがあります。たとえば、ユーザープロファイルに自分自身をインストールするアプリケーションは、そのインストールフォルダーへの完全な書き込みアクセスを期待するか、さらに悪いことに、インストールされる予定の場所に基づいて相対パスを使用します。

したがって、最も簡単な解決策(他の人が言っているように)は、アプリケーションが最初にインストールされた場所にあると考えながら、ファイルを移動するためにジャンクションポイントを使用することです(「ゴースト」フォルダーが残ります)。

それ以上のことは、アプリケーションごとの分析を必要とするもので、移動に支障がないかどうかを確認するために、Windows ADK(Assessment and Deployment Kit)のような分析を支援するツールがありますが、自動化されていません。


5

これを行うために私が見つけた最も簡単な方法は、Link Shell Extensionを使用することです。これは、コマンドラインにドロップすることなくシンボリックリンクとハードリンクを管理できるエクスプローラーシェル拡張です。

あなたの場合、インストーラーが使用を強制したフォルダーを見つけ、ファイルを目的の場所に移動し、新しい場所を右クリックして「リンクソースを選択」を選択し、元の場所に戻って選択します「リンクをドロップ...」を選択し、ジャンクション(またはシンボリックリンクを選択します。ただし、一部のアプリケーションはシンボリックリンクをたどらないため、通常は「ジャンクション」を使用します)。

このようなシナリオの多くで使用しました。多くの場合、アプリケーションは、構成ファイルとキャッシュファイル(%appdata%\ MyProgramなど)の場所を強制します。SSDでは、これらのファイルが絶えず書き込まれると、そのドライブの寿命が短くなる可能性があるため、これを使用してこれらのキャッシュファイルをスピンドルドライブに移動し、パフォーマンスをわずかに低下させますが、SSDの摩耗を減らします。


1

これを行うための普遍的な保証はありません。さまざまなプログラム、特にさまざまな言語で作成されたプログラムが実行可能ファイルの保存場所を確認する方法は複数あります。Symlinksのようなものは一般に効果的かもしれませんが、常に破られる例外があるかもしれないことを常に知っています。ファイル(実行可能ファイルなど)を移動すると、一部のプログラムは特定の場所でファイルを見つけることを期待し、物事がそうでない場合は異なる動作をする可能性があります(特に完全に壊れる可能性が高い)プログラムが期待しています。

これは、複数のオペレーティングシステムに当てはまります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.