我使用同一款游戏的多个安装(在 Windows 10 Home 上),以便更轻松地访问各种插件/用户配置。每个安装的子文件夹都是目录连接,指向原始游戏安装的子文件夹。它们的创建方式如下(从安装游戏的文件夹的父文件夹开始 - 在我的情况下是 C:\Program Files):
rem The original game is installed in the MyCarGame folder
mkdir MyCarGame2
cd MyCarGame2
mklink /J GameData ..\MyCarGame\GameData
mklink /J Maps ..\MyCarGame\Maps
如何正确删除目录连接点(在本例中为“MyCarGame2\GameData”和“MyCarGame2\Maps”),以确保我不会删除其中的文件/文件夹?
可以从文件管理器(例如 Windows Explorer、Total Commander 或 Free Commander)中删除它们吗?
此用户例如报告说他们删除了这样的虚拟文件夹,结果是源文件夹的内容被删除(在我的情况下是“MyCarGame\GameData”和“MyCarGame\Maps”)。
注意:这里有一个类似的问题:如何在 Windows 7 中使用命令行删除连接点
答案1
我不知道 Total Commander 和 Free Commander,但有两种方法可以删除连接而不删除源文件夹的内容。
从Windows资源管理器,像删除其他文件夹一样进入MyCarGame2
并删除连接点。它不会删除源,只会删除连接点。
从命令提示符:
cd MyCarGame2
rmdir GameData
rmdir Maps
从电源外壳(谢谢Brian Low 的评论[1][2]):
cd MyCarGame2
cmd /c "rmdir GameData"
cmd /c "rmdir Maps"
答案2
我知道这个帖子已经很旧了,但是对于任何在 2023 年研究这个问题的人来说,你可以使用以下 PS cmdlet 组合来删除连接点但不删除其内容:
$junction = Get-Item -Path <path_to_junction>
$junction.Delete()
该路径是实际的连接路径,而不是父路径。
这可以浓缩为:
(gi <path>).Delete()
答案3
使用 Powershell
首先确保它实际上是一个连接点:
(Get-ChildItem . -Force -Recurse | Where-Object { $_.LinkType -eq "Junction" -and $_.Attributes -match "ReparsePoint" }) | Select $_.FullName
然后通过添加:删除(全部)| Remove-Item -Force -Recurse
。