Пакетный файл
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
или сценарий пакетной обработки должен измениться, чтобы заставить его работать? В сценарии пакетной обработки существует ли ошибочный код?
Согласно этот 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
)