windows - Batch slette filer, men hold 6 filer?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en mappe med mange undermapper. Jeg vil slette alle filer, men gem de første 6 filer for hver undermappe. Hvordan kan jeg batch gøre dette på Windows Server 2012?

Bedste reference



  • Skift variabler BaseDir og KeepFiles for at passe til dine behov.

  • Hvis output ser ud ok, skal du fjerne ekko i den sidste linje






:: Q:Test201852SO\_50129236.cmd
@Echo off & SetLocal
Set "BaseDir=Q:Test2018"
Set "KeepFiles=6"

Pushd "\%BaseDir\%" || (echo couldn't find BaseDir&Pause&exit /b 1)
For /F \%\%A in (
  'dir /B /S /AD 2^>nul'
) do For /F "skip=\%KeepFiles\% delims=" \%\%B in (
  'dir /B /A-D /ON "\%\%~fA*" 2^>NUL'
) do Echo del "\%\%~fA\%\%~nxB"