【发布时间】:2019-10-15 13:35:57
【问题描述】:
我知道,有与此非常相似的问题,但我找不到此问题的正确答案。
我的文件夹结构如下:
\Path\To\BaseDir
\FolderToDelete1
\File1
\File2
\FolderToDelete2
\File3
\File4
\File5
我需要的是一行命令(这是我必须满足的要求)什么会:
- 从我的 BaseDir 中删除所有文件和文件夹(递归)
- 从我的 BaseDir 中删除每个文件夹(递归)
- 只删除我的 BaseDir 中的每个文件(而不是文件夹)
我无法使用 Power Shell。我无法运行批处理文件。我需要单行命令。
在 Linux shell 中,我搜索选项 1 的命令如下所示:
rm -Rf \Path\To\BaseDir\*
与上述命令等效的 Windows CLI 是什么?
我的实际路径包含空格,例如:"D:/Path to Dir/BaseDir"
【问题讨论】:
-
链接的答案不是这个问题的答案。链接的解决方案不是单行的。我不想删除我的 BaseDir 目录,只是它的内容,但链接的答案会这样做。我正在更新问题,因为我也无法运行批处理文件。
-
您的问题的解决方案确实存在于针对该问题发布的一个或多个答案中,所以我相信@Gem 也是如此,它也是重复的!您需要将目录更改为
"D:\Path to Dir\BaseDir",然后删除您所在的目录,以防止它也被删除。哦,如果您真的想要一个与您发布的 Linux 命令等效的命令,您是否也希望它失败? (因为rm -Rf D:\Path to Dir\BaseDir\*不正确). -
在“你试过了吗”——也许尝试删除“X:\path\to\dir\”或“X:\path\to\dir\”。额外的点在 linux 上足以阻止它删除文件夹,但这些天我不太了解 windows 命令。
-
@Compo 我认为你还没有很好地理解这些条件。两行命令的答案可能是一个可行的解决方案,但在我的情况下不会解决问题。我只能输出一个命令(我有这种无法更改的特殊情况)。在我的情况下,更改目录和删除结构无济于事。这些条件已包含在我的问题中,但未包含在链接的问题中。因此不能重复,因为这两个问题的条件完全不同。
-
解决方案见foxidrive's answer 和my answer 中第一个引用主题的解释如何在指定目录中递归删除真正的所有文件和文件夹,没有目录用作当前目录由任何正在运行的进程阻止删除该目录,并且任何正在运行的进程都没有打开任何文件以阻止删除打开的文件。
标签: windows cmd command-line-interface