Что делает Dir? Выдаёт список папок, например,
dir Z:\Box_In\ /s /a:D /B
Код:
Z:\Box_In\001
Z:\Box_In\001\002
Z:\Box_In\001\002\003
Z:\Box_In\001\002\003\004
Z:\Box_In\001\002\003\004\005
Z:\Box_In\001\002\003\004\005\006
Допустим, ни в одной папке файлов нет
Что делает Rd "папка"? Пытается удалить "папка", попытка будет успешна, если "папка" пустая, иначе ошибка.
Что произойдет, если сделать в приведенном примере Rd "Z:\Box_In\001"? Папка удалена не будет, так как она не пустая - есть подпапки.
Аналогично Rd "Z:\Box_In\001\002" .... Rd "Z:\Box_In\001\......005"
Если в For ставим Dir в таком виде, то удалится только последняя пустая папка цепочки
Z:\Box_In\001\002\003\004\005\006,
так как все предыдущие папки, выданные Dir непустые.
Команда Sort /R в данном контексте позволяет отсортировать вывод команды Dir в обратном алфавитном порядке, то есть,
dir Z:\Box_In\ /s /a:D /B |sort /R
Код:
Z:\Box_In\001\002\003\004\005\006
Z:\Box_In\001\002\003\004\005
Z:\Box_In\001\002\003\004
Z:\Box_In\001\002\003
Z:\Box_In\001\002
Z:\Box_In\001
И здесь Rd уже последовательно удаляет реально пустые подпапки, начиная с самого нижнего уровня.
Шляпа ^ в For надо для так называемого экранирования служебного символа | перенаправления вывода команды Dir на вход команды Sort для корректной работы For, в простой командной строке она не нужна