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

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

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 в каталоге Users.

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

2
задан 18 October 2014 в 18:33
1 ответ

Согласно этот Q&A , rmdir не принимает подстановочные знаки. Однако выполнение следующей команды:

для / D% f в (1 *) do rmdir% f / s / q

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

Согласно этот Q&A можно читать файл построчно с помощью пакетной обработки.

rmdir_regex.bat

@echo off

for /f "tokens=*" %%a in (7profiledeletelist.txt) do (
  for /D %%f in (%%a) do rmdir %%f /s /q
)
3
ответ дан 3 December 2019 в 10:45

Теги

Похожие вопросы