2

我已经为此搜索了一段时间的 shell (cmd) 解决方案,但没有找到任何解决方案。所以我想创建一个 Junction 但首先我需要删除该文件夹(如果它存在)(来自 sysinterals 的 Junction不会让我覆盖它)。

我的第一个解决方案是运行rmdir /S/Q folder\to\be\overwritten. 但是,如果我重新运行脚本并且folder\to\be\overwritten已经是一个指向 eg 的链接,那么common\folder的内容common\folder就会被删除。不好 ;-)。

那么如何在 Windows 命令行中安全地删除文件夹但仅删除该文件夹?另请注意,我需要它才能在 Windows XP 中工作。

4

1 回答 1

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

于 2012-11-27T13:07:14.657 回答