我已经为此寻找一个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中使用它。
答案 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
的文件夹(或链接)。