如何在不删除联结内容的情况下安全删除文件夹?

时间:2012-11-27 13:07:15

标签: cmd ntfs junction

我已经为此寻找一个shell(cmd)解决方案一段时间,但没有找到任何解决方案。所以我想创建一个Junction,但首先我需要删除该文件夹(如果它存在(Junction from sysinterals不会让我过度写这个)。

我的第一个解决方案是运行rmdir /S/Q folder\to\be\overwritten。但是,如果我重新运行该脚本并且folder\to\be\overwritten已经是指向例如common\folder的内容common\folder将会被删除{{1}}。不好; - )。

那么如何在Windows命令行中安全删除文件夹但只删除该文件夹?另请注意,我需要在Windows XP中使用它。

1 个答案:

答案 0 :(得分:0)

我找到的答案很好......很有效。

rem ad-l means directories but not links (symlinks or hardlinks)
for /f %%d in ('dir /ad-l /b .\folder\to\be') do @if [%%d]==[overwritten] rmdir /S /Q .\folder\to\be\overwritten
rem adl means directories which are links (symlinks or hardlinks)
for /f %%d in ('dir /adl /b .\folder\to\be') do @if [%%d]==[overwritten] rmdir .\folder\to\be\overwritten

请注意,在此示例中,folder\to\be包含要删除的名为overwritten的文件夹(或链接)。