使用批处理脚本删除子文件夹中的文件

Sat*_*esh 6 batch-file

我必须从具有相同名称的子文件夹中删除文件.我的文件路径如下.

d:\test\test1\archive\*.txt
d:\test\try\archive\*.txt
d:\test\model\archive\*.txt
Run Code Online (Sandbox Code Playgroud)

我尝试del在批处理脚本中使用命令删除.但是文件夹" test " 中有超过100个文件夹.因此,很难del用于每一条路径.

除"archive"文件夹的父文件夹名称外,所有路径的所有内容都保持不变.所以我想可能有一些简单的方法来使用批处理脚本删除文件.

任何人都可以指导我是否有任何简单的方法来使用批处理脚本删除文件?或者我必须重复del所有100个文件夹?

Bal*_*i C 28

您也可以使用该/s开关del删除子文件夹.

del D:\test\*.* /s
Run Code Online (Sandbox Code Playgroud)

将删除所有正在测试的文件,包括所有子文件夹中的所有文件.

要删除文件夹,请使用rd相同的开关.

rd D:\test\folder /s /q
Run Code Online (Sandbox Code Playgroud)

rd虽然不支持通配符,*但如果要递归删除test目录下的所有子文件夹,可以使用for循环.

for /r /d D:\test %a in (*) do rd %a /s /q
Run Code Online (Sandbox Code Playgroud)

如果您for在批处理文件中使用该选项,请记住使用2 %而不是1.


Bor*_*nov 5

在bat文件中使用powershell

PowerShell Remove-Item c:\scripts\* -include *.txt -exclude *test* -force -recurse
Run Code Online (Sandbox Code Playgroud)

您还可以排除删除某些特定文件夹或文件:

PowerShell Remove-Item C:/*  -Exclude WINDOWS,autoexec.bat -force -recurse
Run Code Online (Sandbox Code Playgroud)