3

У меня есть папка C:\remote которой по две папки, A и B. Каждая из них содержит несколько папок, например, xyc , dsx , axyz и так далее. Я хочу удалить любую подпапку, которая не имеет имени xyz .

У меня есть следующий скрипт:

set folder="C:\Users\rmakkena\AppData\Roaming\TabMigrate\10.212.38.15\TBM\workbooks" 
cd /d %folder% 
for /F "delims<>" %%i in ('migrate') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Я хотел удалить все папки, которые не названы как migrate .

1 ответ1

0

Я хочу удалить все папки, которые не содержат строку переноса

Используйте следующий пакетный файл:

@echo off
setlocal disableDelayedExpansion
set folder="C:\Users\rmakkena\AppData\Roaming\TabMigrate\10.212.38.15\TBM\workbooks" 
cd /d %folder% 
for /f "usebackq tokens=*" %%i in (`dir /a:d /b /s ^| findstr /v /i migrate` ) do (
  echo rd /s /q %%i
)
endlocal

Заметки:

  • Удалите echo когда вы довольны тем, что будет делать командный файл.

Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .