关于建议的副本的注意事项:我不是要在全球范围内更改安装位置。我想将每个程序的程序移到不同的位置。
一些软件安装程序不允许您选择程序的安装位置,我觉得这很烦人。
有没有一种方法可以让您将已经安装的程序移动到另一个位置,最好自动在注册表中进行必要的更改?
到目前为止,请按照以下答案进行更新:
我不想从其他位置访问该程序,而是希望它位于实际位置。因此,尽管我很感谢您的建议,但链接不会起作用。
关于建议的副本的注意事项:我不是要在全球范围内更改安装位置。我想将每个程序的程序移到不同的位置。
一些软件安装程序不允许您选择程序的安装位置,我觉得这很烦人。
有没有一种方法可以让您将已经安装的程序移动到另一个位置,最好自动在注册表中进行必要的更改?
到目前为止,请按照以下答案进行更新:
我不想从其他位置访问该程序,而是希望它位于实际位置。因此,尽管我很感谢您的建议,但链接不会起作用。
Answers:
如果您不太担心实际的文件夹结构,可以将文件夹移动到所需位置,并使用目录符号链接指向新位置(例如,如果系统驱动器上的空间有限)。典型的命令行是
mklink /d C:\Path\Of\Original\Folder D:\Path\Of\New\Folder
我不知道有什么工具可以真正移动文件夹,重新路由,链接和注册表项,因为有太多程序会不断更新版本,因此很难维护。
编辑:请求添加了如何正确删除目录符号链接。您确实需要注意这一点,因为错误的命令可能会擦除您链接到的文件夹。
最好的方法是:
要么
rmdir C:\Path\To\Symbolic\Link
千万不能使用del
您的目录符号链接的位置命令,作为del
命令来删除文件。这样做将遵循目标目录的路径,清除所有符合条件的文件!
基于Jonno的回答,如果您关心空间,则符号链接是您的朋友。当Steam不允许您在Steam安装文件夹之外安装游戏(称为Steammover)时,有一款软件可以自动创建符号链接,将其指向包含您要移动的程序的文件夹(例如C:/ Program)文件)和目标位置(例如D:/程序),您可以移动特定文件。
将这些应用程序移动/安装到另一个位置可能会带来意想不到的后果。
如果您移动程序,则开发人员可能会使用一整套假设来打破常规。例如,将应用程序自身安装在用户配置文件上的应用程序将期望对其安装文件夹具有完全写权限,甚至更糟糕的是根据期望安装的位置使用相对路径。
因此,最简单的解决方案(就像其他人所说的那样)是只使用结点移动文件,让应用程序认为它仍在原始安装位置(它将在后面保留“ ghost”文件夹)。
除此之外,还需要对每个应用程序进行分析,以查看是否有任何中断,例如Windows ADK(评估和部署工具包)等工具可以帮助该分析,但它不是自动化的。
我发现最简单的方法是使用Link Shell Extension。这是一个资源管理器外壳程序扩展,它使您可以管理符号链接和硬链接,而无需进入命令行。
对于您的情况,您将找到安装程序强迫您使用的文件夹,将文件移动到所需的位置,右键单击新位置并选择“ Pick Link Source”,然后返回到原始位置并选择“将链接拖放为...”并选择Junction(或Symbolic Link,尽管我通常使用“ Junction”,因为某些应用程序不会遵循Symbolic Link)。
我已将其用于许多此类情况-通常,应用程序会为配置和缓存文件(例如%appdata%\ MyProgram)强加一个强制位置。在SSD上,如果不断写入这些文件,则可以减少该驱动器的寿命,因此我将使用它来将这些缓存文件移至主轴驱动器,从而稍微降低性能,但减少SSD的磨损。