О небольшом скрипте очистки CMD

О небольшом скрипте очистки CMD

У меня есть скрипт командной строки, который удаляет все имена папок, не перечисленные в текстовом файле. Я бы хотел, чтобы скрипт удалял ТОЛЬКО папки в текстовом файле. Я не уверен, в чем проблема.
Мой cmd:

for /d %%a in ("C:\Users\Administrator\Desktop\Somedir\*") do findstr /i /x /c:"%%~nxa" Cleanup.txt || rd /s /q %%a

и мой текстовый файл содержит короткие имена папок, например:

am
ar
bg

Кто-нибудь может помочь?

решение1

В командной строке:

cd "C:\Where\Your\Text\File\Is"
for /f %A in ("Cleanup.txt") do (if exist "C:\Users\Administrator\Desktop\Somedir\%A" rd /s /q "C:\Users\Administrator\Desktop\Somedir\%A")

В партии:

@echo off

set "dir=C:\Users\Administrator\Desktop\Somedir"
set "txt=C:\Where\Your\File\Is\Located\Cleanup.txt"

setlocal enabledelayedexpansion
for /f %%A in (%txt%) do (
    set "del=%%A"
    if exist "%dir%\!del!" rd /s /q "%dir%\!del!" 
)

Не забудьте сменить каталог в командной строке, если вы не хотите ничего добавлять в параметры цикла. Я предпочитаю использовать пакет и переменные, поэтому я включил это.

Связанный контент