【发布时间】:2018-06-22 07:56:57
【问题描述】:
我在创建批处理文件或单个 Windows 命令行来删除除父级和第一个子级之外的所有文件和文件夹时遇到困难。
例如,我有一个文件夹 Test,还有 4 个文件夹:
-
测试
- 文件夹_1
- 文件夹_2
- 文件夹_3
- Folder_4
我想要的是删除 Folder_1 到 Folder_4 中的所有内容,但保留文件夹本身。 (Test/Folder_1 -> Test/Folder_4)
我知道如何删除父级中的所有内容,但我不知道如何深入一层以在我想要保留的每个文件夹中运行命令:
del /q "C:\Temp\Test\*"
FOR /D %%p IN ("C:\Temp\Test\*.*") DO rmdir "%%p" /s /q
【问题讨论】:
-
先将 cd /d 推入文件夹并忽略错误 - 您无法删除当前目录。
-
这个怎么样:
for /D %I in ("C:\Test\*") do pushd "%~I" && (rmdir "%~I" & popd) -
既然你已经知道子目录是什么了,那就把它删掉再重新创建。
for /D %%p in ("C:\Test\*") do (rmdir "%%p" /s /q & mkdir "%%p") -
@Squashman,请注意,删除和重新创建文件夹时,您可能会丢失属性或安全设置...
-
@aschipfl,我想如果他们为其中一个子文件夹设置了特定的 ACL,那可能是真的。
标签: batch-file cmd