Tôi có thể di chuyển các chương trình đã cài đặt đến một vị trí khác trong Windows không?


27

Lưu ý về bản sao được đề xuất: Tôi không tìm kiếm sự thay đổi toàn cầu của vị trí cài đặt. Tôi muốn di chuyển các chương trình trên cơ sở mỗi chương trình đến các địa điểm khác nhau.


Một số trình cài đặt phần mềm không cho phép bạn chọn nơi chương trình sẽ được cài đặt, điều này tôi thấy khá khó chịu.

Có cách nào cho phép bạn di chuyển chương trình đã cài đặt sang vị trí khác, tốt nhất là tự động thực hiện các thay đổi cần thiết trong Sổ đăng ký không?

cập nhật theo các câu trả lời cho đến nay:
Tôi không muốn truy cập chương trình từ một địa điểm khác, tôi muốn nó có mặt ở đó. Vì vậy, trong khi tôi đánh giá cao đề xuất của bạn, các liên kết sẽ không được thực hiện.


1
Nếu SW là đủ annoyingly xấu để không cho phép bạn chọn vị trí cài đặt, nó có thể cũng đủ khó chịu xấu để có một số "C: \" con đường mã hóa cứng ở đâu đó. Cách duy nhất đủ an toàn để đánh lừa SW như vậy là câu trả lời của Jonno, nơi nó vẫn "nghĩ" rằng nó được cài đặt ở vị trí mặc định của nó. Nó có thể xảy ra mặc dù nó bị lừa "quá nhiều", ví dụ như liên quan đến không gian có sẵn trên ổ đĩa "của nó".
Hagen von Eitzen


@Downvoter Tại sao downvote? Bởi vì nó là một bản sao? Tôi đã giải thích tại sao không.
Joris Groosman

@JorisGroosman Bạn có thể sử dụng các liên kết tượng trưng trên cùng một ổ đĩa , không quan trọng vị trí của các tệp - bạn thậm chí có thể làm điều đó trên cơ sở mỗi chương trình. Bạn có thể di chuyển thư mục chương trình đến một vị trí khác trên ổ đĩa của bạn (hoặc ổ đĩa khác hoàn toàn), sau đó liên kết nó để vị trí ban đầu trỏ đến vị trí mới. Điều này có nghĩa là câu hỏi của bạn là một bản sao.
AStopher

3
Hoàn toàn không phải là một bản sao. Và trong lý thuyết có thể có một cách xây dựng. Closevotes cảm thấy không có thật với tôi.
Journeyman Geek

Câu trả lời:


44

Nếu bạn không quá lo lắng về cấu trúc thư mục thực tế hiện có, bạn có thể di chuyển thư mục đến bất cứ nơi nào bạn muốn và sử dụng liên kết tượng trưng thư mục để trỏ đến vị trí mới (ví dụ: nếu bạn có không gian hạn chế trên ổ đĩa hệ thống). Dòng lệnh điển hình cho việc này sẽ là

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

Tôi không biết bất kỳ công cụ nào thực sự sẽ di chuyển các thư mục và định tuyến lại và các liên kết và khóa đăng ký, vì có rất nhiều chương trình với các phiên bản cập nhật liên tục nên sẽ rất khó để duy trì.

EDIT: Một yêu cầu đã được thực hiện để thêm cách xóa chính xác liên kết tượng trưng thư mục. Bạn cần phải cẩn thận với điều này vì lệnh sai có thể xóa sạch thư mục bạn đã liên kết đến.

Các phương pháp tốt nhất là:

  • Xóa liên kết tượng trưng thư mục thông qua Windows Explorer. Điều này sẽ giữ cho thư mục đích nguyên vẹn và chỉ xóa liên kết tượng trưng.

hoặc là

  • Sử dụng lệnh rmdir C:\Path\To\Symbolic\Link

Đừng không sử dụng các dellệnh vào vị trí của liên kết tượng trưng thư mục của bạn, như các dellệnh được sử dụng để loại bỏ các file. Làm điều này sẽ theo đường dẫn đến thư mục đích, xóa sạch mọi tệp phù hợp với tiêu chí của bạn!


5
Điều này đòi hỏi các phân vùng phải là NTFS (có thể là chúng). FAT32 không hỗ trợ các liên kết tượng trưng.
Sydius

10

Dựa trên câu trả lời của Jonno, Nếu không gian là mối quan tâm của bạn, symlink là bạn của bạn. Có một phần mềm từ thời trước khi steam không cho phép bạn cài đặt các trò chơi bên ngoài thư mục cài đặt hơi nước được gọi là steammover tự động hóa việc tạo symlink, bạn trỏ nó vào các thư mục chứa các chương trình bạn muốn di chuyển (ví dụ: C: / Chương trình Tệp) và đích (ví dụ: D: / chương trình) và bạn có thể di chuyển các tệp cụ thể.


7

Di chuyển / Cài đặt các ứng dụng đó đến một vị trí khác có thể có những hậu quả không lường trước được.

Có thể có toàn bộ các giả định mà các nhà phát triển sử dụng để phá vỡ nếu bạn di chuyển chương trình. Ví dụ: một ứng dụng tự cài đặt trên hồ sơ người dùng sẽ yêu cầu quyền truy cập ghi đầy đủ vào thư mục cài đặt của nó hoặc thậm chí tệ hơn là sử dụng các đường dẫn tương đối dựa trên nơi mà nó dự kiến ​​sẽ được cài đặt.

Vì vậy, giải pháp đơn giản nhất (như những người khác đã nói) là chỉ sử dụng một điểm nối để di chuyển các tệp sẽ cho phép ứng dụng nghĩ rằng nó vẫn ở vị trí được cài đặt ban đầu (nó sẽ để lại một thư mục "ma" phía sau).

Bất cứ điều gì sau đó sẽ yêu cầu phân tích trên mỗi ứng dụng để xem liệu có bất kỳ điều gì ngăn cản việc di chuyển nó không, có các công cụ để giúp phân tích đó như Windows ADK (Bộ đánh giá và triển khai) nhưng nó không tự động.


5

Cách dễ nhất tôi đã tìm thấy để làm điều này là sử dụng Link Shell Extension . Đó là một tiện ích mở rộng trình thám hiểm cho phép bạn quản lý các liên kết cứng và biểu tượng mà không rơi vào dòng lệnh.

Trong trường hợp của bạn, bạn sẽ định vị thư mục mà trình cài đặt buộc bạn sử dụng, di chuyển các tệp đến vị trí bạn muốn, nhấp chuột phải vào vị trí mới và chọn "Chọn nguồn liên kết", sau đó quay lại vị trí ban đầu và chọn "Liên kết thả dưới dạng ..." và chọn Giao diện (hoặc Liên kết tượng trưng, ​​mặc dù tôi thường sử dụng "Giao diện" vì một số ứng dụng sẽ không tuân theo Liên kết tượng trưng).

Tôi đã sử dụng nó cho nhiều loại kịch bản này - thường thì một ứng dụng sẽ áp đặt một vị trí bắt buộc cho các tệp cấu hình và bộ đệm (như% appdata% \ MyProgram). Trên ổ SSD, nếu các tệp này được ghi liên tục, nó có thể làm giảm tuổi thọ của ổ đĩa đó, vì vậy tôi sẽ sử dụng tệp này để di chuyển các tệp bộ đệm đó sang ổ đĩa trục chính, giảm hiệu suất một chút, nhưng giảm hao mòn cho SSD.


1

Không có bảo đảm chung để làm điều này. Có nhiều cách mà các chương trình khác nhau, đặc biệt là các chương trình được viết bằng các ngôn ngữ khác nhau, có thể kiểm tra nơi tệp thực thi được lưu trữ. Những thứ như Symlinks thường có thể có hiệu quả, nhưng luôn biết rằng có thể có một số ngoại lệ sẽ bị phá vỡ. Nếu bạn di chuyển một tệp (chẳng hạn như tệp thực thi, nhưng có thể là một số tệp khác), một số chương trình có thể mong đợi tìm thấy tệp ở một vị trí cụ thể và có thể hoạt động khác (có lẽ đặc biệt là chỉ bị hỏng hoàn toàn) nếu mọi thứ không như chương trình mong đợi.

Điều này đúng cho nhiều hệ điều hành.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.