Search code examples
batch-filebatch-rename

Delete file from sub folder but want to exclude one sub folder-batch file


I have parent folder name parent, inside parent folder there are subfolder01, subfolder02 and default folders.

Each folder contains one jar file with same name (abc.jar). I want to delete jar file from subfolder01 and subfolder02 not from default folder.

How to exclude default folder when giving cmd like del /s *.abc.jar?


Solution

  • You need a for loop with /F option, which will allow the loop to parse the output of dir command. A possible solution:

    batch-file:

    @echo off
    setlocal EnableDelayedExpansion
    for /f "delims=" %%A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)
    

    cmd

    cmd /v:on
    for /f "delims=" %A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)