Могу ли я переместить установленные программы в другое место в Windows?


27

Примечание о предложенном дубликате: я не ищу глобального изменения места установки. Я хочу переместить программы для каждой программы в разные места.


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

Есть ли способ, позволяющий переместить уже установленную программу в другое место, предпочтительно автоматически внося необходимые изменения в реестр?

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


1
Если SW достаточно раздражающе плох, чтобы вы не могли выбрать место установки, он также может быть достаточно плох, чтобы где-то жестко прописать какой-нибудь путь «C: \». Единственный достаточно безопасный способ обмануть такое ПО - это что-то вроде ответа Джонно, где он по-прежнему «думает», что установлен в расположении по умолчанию. Может случиться так, что он «слишком много» одурачен, например, относительно свободного места на «своем» диске.
Хаген фон Айцен


@ Downvoter Почему downvote? Потому что это дубликат? Я объяснил, почему это не так.
Йорис Гроусман

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

3
Совершенно не дубликат. И в теории может быть встроенным образом. Closevotes для меня фальшивым.
Подмастерье Компьютерщик

Ответы:


44

Если вас не слишком беспокоит фактическая структура папок, вы можете переместить папку в любое место и использовать символическую ссылку каталога, чтобы указать новое местоположение (например, если у вас ограниченное пространство на системном диске). Типичная командная строка для этого будет

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

Мне неизвестны какие-либо инструменты, которые фактически перемещают папки и перенаправляют их, а также ссылки и разделы реестра, поскольку существует очень много программ с постоянно обновляемыми версиями, которые было бы очень трудно поддерживать.

РЕДАКТИРОВАТЬ: Был сделан запрос, чтобы добавить, как правильно удалить символическую ссылку каталога. Вы должны быть осторожны с этим, поскольку неправильная команда может стереть папку, с которой вы связаны.

Лучшие методы:

  • Удалите символическую ссылку на каталог через Windows Explorer. Это сохранит целевую папку без изменений и удалит только символическую ссылку.

или

  • Используйте команду rmdir C:\Path\To\Symbolic\Link

Как не использовать delкоманду на месте вашего каталога символической ссылки, как delкоманда используется для удаления файлов. При этом будет следовать путь к каталогу назначения, уничтожая все файлы, соответствующие вашим критериям!


5
Это требует, чтобы разделы были NTFS (что они, вероятно, являются). FAT32 не поддерживает символические ссылки.
Sydius

10

Опираясь на ответ Джонно, если пространство - это ваша проблема, то символическая ссылка - ваш друг. В те времена, когда steam не позволял вам устанавливать игры за пределами папки установки steam, называемой steammover, которая автоматизирует создание символической ссылки, есть какое- то программное обеспечение, вы указываете на папки, содержащие программы, которые вы хотите переместить (например, C: / Program Файлы) и пункт назначения (например, D: / Programs), и вы можете перемещать определенные файлы.


7

Перемещение / установка этих приложений в другое место может иметь непредвиденные последствия.

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

Таким образом, самое простое решение (как говорили другие) - просто использовать точку соединения для перемещения файлов, позволяя приложению думать, что оно все еще находится в своем изначально установленном месте (оно оставит папку «ghost» позади).

Что-то еще, что потребовало бы анализа для каждого приложения, чтобы увидеть, нарушает ли что-либо его перемещение, есть инструменты для этого анализа, такие как Windows ADK (Assessment and Deployment Kit), но он не автоматизирован.


5

Самый простой способ, который я нашел, это использовать расширение Link Shell . Это расширение оболочки проводника, которое позволяет вам управлять символическими и жесткими ссылками, не переходя в командную строку.

В вашем случае вы должны найти папку, которую установщик заставил вас использовать, переместить файлы в нужное вам место, щелкнуть правой кнопкой мыши новое местоположение и выбрать «Pick Link Source», затем вернуться к исходному местоположению и выбрать «Drop Link As ...» и выберите Junction (или Symbolic Link, хотя я обычно использую «Junction», потому что некоторые приложения не будут следовать по символической ссылке).

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


1

Нет универсально гарантированной возможности сделать это. Существует несколько способов, с помощью которых разные программы, особенно программы, написанные на разных языках, могут проверить, где хранится исполняемый файл. Такие вещи, как символические ссылки, обычно могут быть эффективными, но всегда помните, что могут быть некоторые исключения, которые могут сломаться. Если вы перемещаете файл (например, исполняемый файл, но, возможно, какой-то другой файл), некоторые программы могут ожидать, что файл будет найден в определенном месте, и могут вести себя по-другому (возможно, особенно вероятно, что он просто сломается полностью), если что-то не так. Программа ожидает.

Это верно для нескольких операционных систем.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.