Чи можна перенести встановлені програми в інше місце в Windows?


27

Зверніть увагу на запропонований дублікат: я не шукаю глобальної зміни місця встановлення. Я хочу перемістити програми на базі кожної програми в різні місця.


Деякі інсталятори програмного забезпечення не дозволяють вам вибрати, де буде встановлена ​​програма, що мені здається прикро.

Чи існує спосіб, який дозволяє перенести вже встановлену програму в інше місце, бажано автоматично внести необхідні зміни до Реєстру?

оновлення за відповідями поки що:
Я не хочу отримувати доступ до програми з іншого місця, я хочу, щоб вона там була фізично. Тож, хоча я ціную ваші пропозиції, посилання не робитимуть.


1
Якщо SW є прикро досить поганим, щоб не дати вам вибрати місце встановлення, воно також може бути прикро погано мати десь якийсь "C: \" шлях. Єдиний достатньо безпечний спосіб обдурити такий SW - це щось на зразок відповіді Jonno, де він все ще «думає», що він встановлений у своєму замовчуванні. Це може статися, хоча воно обдурило "занадто багато", наприклад, щодо наявного місця на "своєму" накопичувачі.
Хаген фон Ейтцен

1
Точний дублікат програм
Forcing

@Downvoter Чому downvote? Тому що це дублікат? Я пояснив, чому це не так.
Жоріс Гроосман

@JorisGroosman Ви можете використовувати символьні посилання на одному диску , неважливо, де розташовані файли - ви навіть можете це робити за програмою. Ви можете перемістити папку програми в інше місце на своєму диску (або інший диск повністю), а потім позначити її так, щоб оригінальне розташування вказувало на нове місце. Це означає, що ваше запитання є дублікатом.
AStopher

3
Повністю не дублікат. І теоретично може бути побудований спосіб. Близькі люди відчувають себе задумливими.
Подорожник Geek

Відповіді:


44

Якщо ви не надто переживаєте про існуючу структуру папок, ви можете перемістити папку куди завгодно і скористатися символьним посиланням на каталог, щоб вказати на нове місце (наприклад, якщо на вашому системному диску є обмежений простір). Типовим для цього командним рядком було б

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

Я не знаю жодних інструментів, які насправді переміщуватимуть папки, перенаправлятимуть, а також посилання та ключі реєстру, оскільки існує стільки програм з постійно оновлюваними версіями, що було б дуже важко підтримувати.

РЕДАКТУВАННЯ: Був поданий запит про те, як правильно видалити символьне посилання каталогу. Вам потрібно бути обережними з цим, оскільки неправильна команда може стерти папку, до якої ви пов’язані.

Найкращі методи:

  • Видаліть символьне посилання з каталогу через Провідник Windows. Це дозволить зберегти цільну папку недоторканою і видалити лише символічне посилання.

або

  • Використовуйте команду rmdir C:\Path\To\Symbolic\Link

Як НЕ використовувати delкоманду на місці вашого каталогу символічного посилання, як delкоманда використовується для видалення файлів. Для цього ви дотримуйтесь шляху до каталогу призначення, витираючи будь-які файли, що відповідають вашим критеріям!


5
Це вимагає, щоб розділи були NTFS (якими вони, мабуть, є). FAT32 не підтримує символічні посилання.
Сидіус

10

Спираючись на відповідь Йонно, якщо космос - це ваша турбота, символьне посилання - ваш друг. є шматочок програмного забезпечення ще в часи, коли пара не дозволяла вам встановлювати ігри поза папкою встановлення пари під назвою steammover, яка автоматизує створення символьних посилань , ви вказуєте на папки, що містять програми, які ви хочете перемістити (наприклад, C: / Program Файли) та призначення (наприклад, D: / програми), і ви можете переміщувати певні файли.


7

Переміщення / встановлення цих додатків до іншого місця може мати непередбачувані наслідки.

Може існувати цілий набір припущень, які розробники використовують, що перерваються, якщо перемістити програму. Наприклад, програма, яка встановлює себе в профіль користувача, очікувала б повного доступу для запису до своєї папки встановлення, або ще гірше використовувати відносні шляхи, залежно від того, де вона очікує встановити.

Таким чином, найпростішим рішенням (як це говорили інші) є просто використовувати точку з’єднання для переміщення файлів, які дозволяють програмі думати, що програма все ще знаходиться в її початково встановленому місці (вона залишить папку "привид" позаду).

Більше того, що вимагало б аналізу за кожну програму, щоб побачити, що щось не зрушило від її переміщення, є такі інструменти, які допоможуть цьому аналізу, як Windows ADK (комплект оцінювання та розгортання), але він не автоматизований.


5

Найпростіший спосіб, який я знайшов для цього, - це використання Link Shell Extension . Це розширення оболонки провідника, яке дозволяє керувати символічними та жорсткими посиланнями, не потрапляючи на командний рядок.

У вашому випадку ви знайдете папку, яку інсталятор змусив вас використовувати, перемістіть файли до потрібного місця, клацніть правою кнопкою миші нове місце та виберіть "Вибрати джерело посилання", потім поверніться до вихідного місця та виберіть "Drop Link As ..." та виберіть Junction (або Symbolic Link, хоча я зазвичай використовую "Junction", оскільки деякі програми не перейдуть за символічним посиланням).

Я використовував його для багатьох подібних сценаріїв - часто програма накладає примусове розташування файлів конфігурації та кешування (наприклад,% appdata% \ MyProgram). На SSD, якщо ці файли записуються постійно, це може скоротити термін служби цього диска, тому я використаю це для переміщення цих файлів кешу на шпиндельний диск, зменшення продуктивності, але зменшення зносу на SSD.


1

Немає універсальної гарантії з цим робити. Існує кілька способів, за допомогою яких різні програми, зокрема програми, написані різними мовами, можуть перевірити, де зберігається виконуваний файл. Такі речі, як символьні посилання, зазвичай можуть бути ефективними, але завжди знайте, що можуть бути деякі винятки, які порушуються. Якщо ви переміщуєте файл (наприклад, виконуваний файл, але можливо, якийсь інший файл), деякі програми можуть очікувати, що вони знайдуть файл у певному місці, і можуть поводитись по-різному (можливо, особливо ймовірно, що вони повністю зламаються), якщо все не так, як програма очікує.

Це справедливо для декількох операційних систем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.