Назад | Перейти на главную страницу

Как удалить каталоги с помощью подстановочных знаков, прочитав файл в пакетном режиме?

Пакетный файл

for /f "delims=" %%f in (7profiledeletelist.txt) do rd /s /q "%%f"
PAUSE
exit

7profiledeletelist.txt

C:\Users\1*
C:\Users\2*
C:\Users\3*
C:\Users\4*
C:\Users\5*
C:\Users\6*
C:\Users\7*
C:\Users\8*
C:\Users\9*
C:\Users\M*
C:\Users\T*

После прочтения 7profiledeletelist.txt файл, bat файл ничего удалить не может.

Если я удалю * и напишите точное имя каталога, в котором он работает. Я хочу удалить все папки, начинающиеся с M, T, 1 до того как 9 в каталоге пользователей.

Как 7profiledeletelist.txt или пакетный скрипт нужно изменить, чтобы он заработал? Есть ли ошибочный код в пакетном скрипте?

В соответствии с этот вопрос и ответ, rmdir не принимает подстановочные знаки. Однако, выполнив следующую команду:

for /D %f in (1*) do rmdir %f /s /q

удаляет все папки, начинающиеся с 1.

В соответствии с этот вопрос и ответ можно читать файл построчно, используя пакетную обработку.

rmdir_regex.bat

@echo off

for /f "tokens=*" %%a in (7profiledeletelist.txt) do (
  for /D %%f in (%%a) do rmdir %%f /s /q
)