Пакетное удаление папок из файла file.txt
У меня есть временная папка, куда файлы загружаются, а затем систематически удаляются. Не удалось выполнить очистку файлов, и теперь у меня есть несколько каталогов / файлов, которые необходимо удалить вручную. Я удалил файл.ir, который содержит имена всех папок, которые мне нужно удалить. Я создал следующее для удаления файлов и папок, однако путь не всегда один и тот же:
FOR /F %%i IN (C:\dirlist.txt) DO echo y| del "C:\Temp Files\*" & rmdir /s /q "C:\Temp Files\" %%i
Проблема заключается в том, что временные файлы загружаются, так как они формируют свои собственные подпапки, поэтому у меня следующая структура:
C:\Temp Files\101\folder1
C:\Temp Files\101\folder2
C:\Temp Files\103\folder4
C:\Temp Files\455\folder3
В каталоге iddenirs.txt содержатся имена папок (folder1, folder2 и т. д.).
Мой скрипт не работает, потому что он ищет "C:\Temp Files\folder1"
Как я могу заставить скрипт найти 'folder1' и удалить его независимо от номера подпапки (101, 103 и т. Д.)?
1 ответ
@ECHO OFF
SETLOCAL
FOR /d %%a IN ("c:\temp\*") DO (
FOR /f "delims=" %%s IN (q48890405.txt) DO (
IF EXIST "%%a\%%s\." ECHO RD /S /Q "%%a\%%s"
)
)
GOTO :EOF
Вам необходимо изменить имя каталога в соответствии с вашими обстоятельствами.
Я использовал файл с именем q48890405.txt
содержащие некоторые фиктивные данные для моего тестирования.
Требуемые команды RD просто ECHO
Эд для тестирования. После проверки правильности команд измените ECHO RD
в RD
на самом деле удалить каталоги.
Это должно присвоить имена подкаталогов %%a
затем для каждого найденного подкаталога прочитайте имена из файла в %%s
, Затем посмотрите, есть ли каталог с именем %%a\%%s
существует, и удалите его, если он существует.
Обратите внимание, что ваш del "C:\Temp Files\*"
просто удалит все файлы в "C:\Temp Files"
снова и снова. Это действительно нужно сделать только один раз (если это то, что вы намеревались сделать).
Удаление каталога удаляет все содержащиеся в нем файлы, при условии, что ни один из них не защищен каким-либо образом (только для чтения или UAC).