批量删除多个子文件夹中的文件

时间:2019-03-07 11:35:40

标签: batch-file cmd forfiles

我有一个看起来像这样的目录

  

“ C:\ sales \ client1 \ file1”。

client1文件夹不是静态的,并且可能在client1到client100之间变化,并且client文件夹内的每个文件在file1到file8之间都会变化。

我想使用一批超过7天(d-7)的掩码(/ m file1 *),在每个客户端文件夹中删除4个特殊文件(例如file1,file3,file6和file8)。

到目前为止,我尝试过的每种解决方案都可以在指定目录下使用

谢谢

1 个答案:

答案 0 :(得分:1)

由于掩码是文件,因此@path将包含文件名

您必须将CD \..附加到该文件夹​​后@path\..

所以尝试:

 forfiles /P C:\Sales /S /M file1* /D -7 /C "cmd.exe /c @cd /D @path\..&del file1 file3 file6 file8"

此命令还将直接在C:\Sales中找到符合条件的文件1

使用PowerShell的更合理的解决方案

Get-ChildItem "C:\Sales\Client*\file1" -File | 
  Where LastWriteTime -lt (Get-Date).Date.AddDays(-7)| 
    ForEach-Object {
      PushD $_.Directory
      Remove-Object file[1368]
      PopD
    }